我正在学习ReactiveObjC,这是ReactiveCocoa的Objective-C版本。
以下是代码:RACSignal.h
中,
- (RACSignal *)reduceEach:(id _Nullable (^)())reduceBlock RAC_WARN_UNUSED_RESULT;
(id _Nullable (^)())
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;
}
有点笼统。我认为我可以在块中放置零个或多个参数,使用声明void (^block)()
。
现在Xcode不支持这种语法。 我想知道如何解决它,以及原因是什么。
提前感谢。
void
放在括号中应该可以解决这个问题。 - Charles Srstka-[NSString stringWithFormat:]
一样,使用省略号。(id _Nullable (^)(NSString *, ...))
- Charles Srstka