我正在学习ReactiveObjC,即ReactiveCocoa Objective-C版本。
对于以下代码:在RACSignal.h
中,
- (RACSignal *)reduceEach:(id _Nullable (^)())reduceBlock RAC_WARN_UNUSED_RESULT;
Xcode报告错误:
可以在
reduceBlock()
中放入多个参数。如以下代码所示:在
UIAlertView+RACSignalSupport.m
和其他代码中,- (RACSignal *)rac_buttonClickedSignal {
RACSignal *signal = [[[[self.rac_delegateProxy
signalForSelector:@selector(alertView:clickedButtonAtIndex:)]
reduceEach:^(UIAlertView *alertView, NSNumber *buttonIndex){
return buttonIndex;
}]
......
return signal;
}
Kinda通用。我想我可以在声明了
void (^block)()
的代码块中放置零个或多个参数。Xcode现在不支持该语法。
我想知道如何解决它,为什么。
提前谢谢了。
最佳答案
当您尝试使用空括号()
定义函数或阻止原型(prototype)时,会收到“不是原型(prototype)”警告。
将void
放在括号的中间,即(id _Nullable (^)(void))
,您应该解决此问题。