Я пишу простой класс кнопок, что-то вроде этого:
@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
После некоторые исследования Я вижу, что селекторы могут принадлежать к семействам, которые имеют разные требования к памяти.Предполагается, что действие вернет void, поэтому оно не должно вызывать каких-либо трудностей ARC и должно соответствовать семейству none
.
Похоже, что соответствующий фрагмент кода препроцессора, который я хочу, есть или естьвариант:
__attribute__((objc_method_family(none)))
Но куда мне положить это, чтобы Clang не беспокоиться?