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