我有一个如下所示的块属性:

@property (nonatomic, copy) void (^indexChangeBlock)(NSInteger index);

当我尝试设置此属性的值时,Xcode自动完成功能将省略参数名称,使我得到类似以下内容:
[self.segmentedControl3 setIndexChangeBlock:^(NSInteger) {
    code
}];

然后Xcode显示Parameter name omitted错误。我知道可以通过手动添加参数名称使其看起来像这样来解决此问题:
[self.segmentedControl3 setIndexChangeBlock:^(NSInteger index) {
    code
}];

我的问题是,如何使Xcode自动添加参数名称。换句话说,就是防止它删除它们。

最佳答案

可能的解决方案:

typedef void (^IndexChangeBlock)(NSInteger index);

并定义您的财产
@property (nonatomic, copy) IndexChangeBlock indexChangeBlock;

如果添加
- (void)setIndexChangeBlock:(IndexChangeBlock)indexChangeBlock;

一切都应该工作

07-26 08:47