den*_*pro 8 block objective-c ios
我正在学习ReactiveObjC,即 ReactiveCocoa Objective-C 版本。
对于以下代码:在RACSignal.h,
- (RACSignal *)reduceEach:(id _Nullable (^)())reduceBlock RAC_WARN_UNUSED_RESULT;
Run Code Online (Sandbox Code Playgroud)
(id _Nullable (^) () )
Xcode 报错:
这个块声明不是原型
可以将多个参数放入reduceBlock(). 如以下代码: In UIAlertView+RACSignalSupport.m, and others ,
- (RACSignal *)rac_buttonClickedSignal {
RACSignal *signal = [[[[self.rac_delegateProxy
signalForSelector:@selector(alertView:clickedButtonAtIndex:)]
reduceEach:^(UIAlertView *alertView, NSNumber *buttonIndex){
return buttonIndex;
}]
......
return signal;
}
Run Code Online (Sandbox Code Playgroud)
有点笼统。我想我可以在块中放置零个或多个参数,并void (^block)()声明。
Xcode 现在不支持该语法。我想知道如何解决它,以及为什么。
提前谢谢了。
Cha*_*tka 14
当您尝试使用一组空括号定义函数或块原型时,您可能会收到“不是原型”警告()。
把 avoid放在括号的中间——即(id _Nullable (^)(void)),你应该解决这个问题。