Как объявить селектор в качестве свойства iOS и как использовать мое свойство дальше? - PullRequest
1 голос
/ 26 января 2012

Я пишу дальше. Весь код написан с помощью ARC

@interface MPEvent : UIImageView
@property (nonatomic, unsafe_unretained) SEL action;
@property (nonatomic, strong) id target;

@end

Правильно ли объявлен селектор?

В реализации я использую свои свойства следующим образом:

- (void)sendActionToTargetFromView:(id)view {
    [target performSelector:action withObject:view];
}

Но компилятор покажет мне предупреждение
предупреждение: семантическая проблема: PerformSelector может вызвать утечку, поскольку его селектор неизвестен

Как исправить это предупреждение?

1 Ответ

5 голосов
/ 16 февраля 2012

В приведенном ниже примере -Warc-executeSelector-leaks игнорируется только для одной строки кода, после чего диагностика возвращается в любое ранее существовавшее состояние.

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
    [self.ticketTarget performSelector: self.ticketAction withObject: self];
#pragma clang diagnostic pop

Прагма предупреждения помогают Подробное описание

...