我有这样的方法:Objective-C的不兼容的模块类型错误
- (void)shareItems:(NSArray *)shareItems fromViewController:(UIViewController *)viewController anchorView:(UIView *)anchorView completion:(void (^)(NSString *activityType, BOOL, NSError *))completionHandler;
我只是想实现它的XCode 7.0.1和我收到以下错误信息:
如果你不能看到,我试图执行:
[[VMSocialShareManager defaultManager] shareItems:shareItems fromViewController:self anchorView:shareCell completion:^(NSString *activityType, BOOL completed, NSError *error) {
...
}];
但得到的错误:
Incompatible block pointer types sending 'void (^)(NSString *__strong, BOOL, NSError *__strong)' to parameter of type 'void (^)(BOOL, NSString *__strong, NSError *__strong)'
OK,当然,我会尽量翻转BOOL
和NSString
即使这是没有意义的:
[[VMSocialShareManager defaultManager] shareItems:shareItems fromViewController:self anchorView:shareCell completion:^(BOOL completed, NSString *activityType, NSError *error) {
...
}];
但随后即给出了错误:
Incompatible block pointer types sending 'void (^)(BOOL, NSString *__strong, NSError *__strong)' to parameter of type 'void (^)(NSString *__strong, BOOL, NSError *__strong)'
但问题是:如何在VMSocialShareManager_中实际声明此方法? – matt
另请参见,一如既往http://fuckingblocksyntax.com/ –
@matt:问题的第一行是方法声明。 – Ramsel