私は次のような単純なボタンクラスを書いています:
@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に心配しないように伝えるために、どこにそれを置くのでしょうか?