我尝试使用以下Objective-C块定义闭包:
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!'
这样做的正确方法是什么?
答案 0 :(得分:2)
试试这个。
UPUserAPI.getFriendsWithCompletion({(friends: [AnyObject]?, response: UPURLResponse?, error: NSError?) -> Void in
//code
})
在Objective C代码中,任何参数都可以为零。所以在Swift中,这些参数必须定义为Optionals。