【问题标题】:Block property with parameters and setter带有参数和设置器的块属性
【发布时间】:2014-12-15 11:24:10
【问题描述】:

我有一个带有 setter 的块:

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

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

我必须使用 setter 并且没有跳过它的选项。 如何访问 UIControlEvents 参数..?

【问题讨论】:

    标签: objective-c objective-c-blocks


    【解决方案1】:

    你可以像这样填写你的setter来设置你的block属性:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2021-07-19
      • 1970-01-01
      相关资源
      最近更新 更多