关于网友提出的“ Objective-C block的参数问题: This block declaration not a prototype”问题疑问,本网通过在网上对“ Objective-C block的参数问题: This block declaration not a prototype”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: Objective-C block的参数问题: This block declaration not a prototype
描述:我在学 ReactiveObjC, ReactiveCocoa的Objective-C版.
RACSignal.h 中,以下代码:,
- (RACSignal *)reduceEach:(id _Nullable (^)())reduceBlock
RAC_WARN_UNUSED_RESULT; (id _Nullable (^)())
Xcode 报错:
This block declaration is not a prototype
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)()
这样声明,就能在block 放0到多个参数了.
Xcode现在不支持这种语法,怎样解决,解释下更好。
解决方案1:只是个warnning吧,
试试 括号里面加上
id _Nullable ,...
//比如
@property (nonatomic, strong) void (^testBlock)(id _Nullable ,...);
以上介绍了“ Objective-C block的参数问题: This block declaration not a prototype”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4527821.html