Tôi đang viết một lớp nút đơn giản, một cái gì đó như thế này:Tôi đang viết một lớp Button trong Objective-C với ARC - Làm thế nào để ngăn chặn cảnh báo rò rỉ bộ nhớ của Clang trên bộ chọn?
@interface MyButton : NSObject {
id object;
SEL action;
}
@property(strong) id object;
@property SEL action;
-(void)fire;
@end
@implementation MyButton
@synthesize object, action;
-(void)fire {
[object performSelector:action];
}
@end
tôi nhận được cảnh báo sau đây từ Clang trên [object performSelector:action]
:
PerformSelector may cause a leak because its selector is unknown
Sau some research Tôi thấy rằng selectors có thể thuộc về gia đình mà có các yêu cầu về bộ nhớ khác nhau. Mục đích là để hành động trả lại khoảng trống, do đó, nó không được gây ra bất kỳ sự cố ARC nào và phải phù hợp với họ trong gia đình none
.
Dường như mảnh có liên quan của mã Preprocessor tôi muốn là, hoặc là một biến thể của:
__attribute__((objc_method_family(none)))
Nhưng nơi nào tôi đặt đó để nói Clang không phải lo lắng?
câu hỏi tương tự [ở đây] (http://stackoverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selector-is- không rõ) – zpasternack
Nó thực sự là một lớp gốc? –
Mặt lớp gốc là bản sao chép và chỉnh sửa lỗi đánh máy. –