我正在学习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)),您应该解决此问题。

10-02 19:30