我尝试使用以下 Objective-C block 定义闭包:
typedef void(^UPBaseEventAPIArrayCompletion)(NSArray *results, UPURLResponse *response, NSError *error);
+ (void)getFriendsWithCompletion:(UPBaseEventAPIArrayCompletion)completion;
在此:
UPUserAPI.getFriendsWithCompletion({(friends: [AnyObject], response: UPURLResponse, error: NSErrorPointer) -> Void in
})
...并出现以下错误(见图片):
无法将类型“([AnyObject]、UPURLResponse、NSErrorPointer) -> Void”的值转换为预期的参数类型“UPBaseEventAPIArrayCompletion!”
正确的做法是什么?
最佳答案
试试这个。
UPUserAPI.getFriendsWithCompletion({(friends: [AnyObject]?, response: UPURLResponse?, error: NSError?) -> Void in
//code
})
在 Objective C 代码中,任何这些参数都可以为 nil。所以在 Swift 中,这些参数必须定义为 Optionals。
关于ios - swift : Use closure compatible with Objective-C block,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33903088/