[英]Objective-C completion block in Swift
我想像我在Objective-C中一贯所做的那样在Swift中调用完成块。 我看了一下闭包,但是由于某种原因,我无法使其正常工作...
对象:
- (void)someMethodWithParam1:(NSString *)param completion:(void(^)(NSArray* arr, NSURLResponse *resp))callback
{
callback(arr, resp);
}
迅速:
func someMethodWithParam1(param: NSString, completion:((NSArray?, NSURLResponse?)->())) ->(){
^
|
/* Error: Insert ',' here */
completion(arr, resp)
}
好的,这不是语法错误,而是我的错误。 我在这里使用的方法标头与我的代码中的方法标头不同。 因此,我最初发布的这段代码应该可以正常工作。
Typealias是您的朋友在这里,只是为了使代码更具可读性
typealias onComplete = (NSArray?, NSURLResponse?) -> ()
func someMethodWithParam1(param: NSString, completion:onComplete) -> ()
{
completion(arr, resp)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.