Я пишу простой кнопочный класс, что-то вроде этого:
@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)))
Но где я могу сказать, что Клану нечего беспокоиться?