Tôi viết một lớp wrapper mà sử dụng thời gian chạy động để chuyển tiếp các thông điệp đến đối tượng bọc, sử dụng forwardInvocation:
Vô hiệu hóa tổng hợp thuộc tính tự động Objective-C cho một lớp học?
Tuy nhiên, kiểm tra loại tại phàn nàn rằng phương pháp này không thực hiện trên lớp wrapper của tôi, mà nói chung là tốt Điều.
Vì vậy, tôi nghĩ tôi sẽ viết một số khai báo phương thức trong tiêu đề của trình bao bọc của tôi để đáp ứng trình kiểm tra loại. Lưu ý rằng tôi chỉ muốn các khai báo chứ không phải các định nghĩa.
Tuy nhiên, khi tôi sao chép các chỉ thị @property
của mình, chúng không chỉ được khai báo mà còn được xác định là tốt và theo cách này, chúng được ưu tiên hơn chuyển tiếp phương thức và do đó chuyển tiếp chuyển tiếp.
Vì vậy, có cách nào để khai báo @property
và không tự động tổng hợp getters và setters không? Tôi thích tính năng này vì vậy tôi muốn vô hiệu hóa trên cơ sở mỗi lớp, và để nó cho phần còn lại của dự án. Một chút như -fno-objc-arc
.
P.S. clang -v
=>$ Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Thật không may điều này không tạo ra một cảnh báo duy nhất về việc thiếu phương thức truy cập và ứng dụng sẽ bị lỗi khi truy cập vào thuộc tính. – Ernest