使用参数和setter阻止属性

时间:2014-12-15 11:24:10

标签: objective-c objective-c-blocks

我有一个带有setter的块:

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

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

我必须使用setter,没有选项可以跳过它。 如何访问UIControlEvents参数..?

1 个答案:

答案 0 :(得分:0)

您可以通过填写您的setter来设置您的block属性:

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

但是,您将无法访问所请求的任何特定UIControlEvents参数,因为您是提供它的人。 action块将UIControlEvents值作为参数,因此它不会在块中。使用UIControlEvents参数调用操作块可能如下所示:

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