Xcode省略了块的参数名称

Hes*_*gid 6 iphone xcode block ios

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

@property (nonatomic, copy) void (^indexChangeBlock)(NSInteger index);
Run Code Online (Sandbox Code Playgroud)

当我尝试设置此属性的值时,Xcode自动完成将省略参数名称,留下如下所示的内容:

[self.segmentedControl3 setIndexChangeBlock:^(NSInteger) {
    code
}];
Run Code Online (Sandbox Code Playgroud)

然后Xcode显示Parameter name omitted错误.我知道我可以通过手动添加参数名来解决这个问题,使它看起来像这样:

[self.segmentedControl3 setIndexChangeBlock:^(NSInteger index) {
    code
}];
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何让Xcode自动添加参数名称.或者换句话说,防止它删除它们.

Jon*_*hon 3

可能的解决方案:

typedef void (^IndexChangeBlock)(NSInteger index);
Run Code Online (Sandbox Code Playgroud)

并定义你的财产

@property (nonatomic, copy) IndexChangeBlock indexChangeBlock;
Run Code Online (Sandbox Code Playgroud)

如果你添加

- (void)setIndexChangeBlock:(IndexChangeBlock)indexChangeBlock;
Run Code Online (Sandbox Code Playgroud)

一切都应该有效