我正在编写一个简单的按钮类,如下所示:
@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
我从 Clang 收到以下警告[object performSelector:action]
:
PerformSelector may cause a leak because its selector is unknown
经过一些研究,我发现选择器可以属于具有不同内存要求的系列。目的是让动作返回无效,因此它不应该导致任何 ARC 困难并且应该适合none
家庭。
看起来我想要的相关预处理器代码是,或者是以下的变体:
__attribute__((objc_method_family(none)))
但是我在哪里可以告诉 Clang 不要担心呢?