2014-12-15 4 views
3

У меня есть блок с сеттер:Блок свойства с параметрами и сеттер

@property (nonatomic, copy) void (^action)(UIControlEvents); 

- (void)setAction:(void (^)(UIControlEvents))action { 
    // ? 
} 

я должен использовать сеттер и нет никакой возможности, чтобы пропустить его. Как я могу получить доступ к параметру UIControlEvents ..?

ответ

0

Вы можете установить свойство блока, заполнив ваш сеттер, как это:

- (void)setAction:(void (^)(UIControlEvents))action { 
    _action = action; 
} 

Однако, вы не сможете получить доступ к какому-либо конкретным UIControlEvents параметру, как вы просили, потому что ты один снабдив его , Блок action принимает значение UIControlEvents как аргумент, поэтому он не будет находиться внутри блока. Вызов блока действий с параметром UIControlEvents может выглядеть примерно так:

- (void)handleControlEvents:(UIControlEvents)events { 
    if (self.action) self.action(events) 
}