Я пишу класс Button в Objective-C с ARC - Как мне предотвратить предупреждение Clang об утечке памяти в селекторе?

Я пишу простой класс кнопки, примерно такой:

@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 не беспокоился?

19
задан Brad Larson 16 August 2011 в 17:43
поделиться