Chỉ cần thêm thuộc tính đến việc khai:
@interface Blah
- (void)method __attribute__((deprecated));
@end
Cung cấp bao gồm bạn là chính xác cho bản dịch, điều này sẽ hoạt động tốt. Có lẽ bạn đã thêm thuộc tính vào định nghĩa , không phải là khai báo ? Nếu không, một cuộc biểu tình (mẫu mã) sẽ giúp ích.
Cập nhật
Mặc dù cách tiếp cận nêu trên làm việc cho thông điệp điển hình, dường như kêu vang bị nhầm lẫn với IBAction
s.
Với các thuộc tính clang, ibaction
được chèn ngầm (đối với những gì trước đây là typedef
).
Khi thuộc tính được quy định trong tờ khai chỉ, sản lượng tiền xử lý như sau:
// preprocessed declaration
- (void)__attribute__((ibaction))setSomething:(id)sender __attribute__((noreturn));
// preprocessed implementation
- (void)__attribute__((ibaction))setSomething:(id)sender
...
Vì vậy, dường như trình biên dịch chỉ là nhầm lẫn bởi trang trí bí mật này, và bạn cũng phải thêm thuộc tính để việc triển khai/định nghĩa để ngăn chặn cảnh báo khi phương thức là IBAction
.
Điều này không hoạt động! –
Hoạt động trên máy của tôi;) Đăng mã của bạn! – justin
- (IBAction) showTag __attribute __ ((không được chấp nhận)); Tôi nhận được điều này: Các thuộc tính về cách triển khai phương thức và khai báo phải phù hợp. –