[英]Objective-C completion block in Swift
I would like to call a completion block in Swift as I have always done in Objective-C. 我想像我在Objective-C中一贯所做的那样在Swift中调用完成块。 I took a look at closures, but for some reason, I cannot get it to work...
我看了一下闭包,但是由于某种原因,我无法使其正常工作...
Obj-C: 对象:
- (void)someMethodWithParam1:(NSString *)param completion:(void(^)(NSArray* arr, NSURLResponse *resp))callback
{
callback(arr, resp);
}
Swift: 迅速:
func someMethodWithParam1(param: NSString, completion:((NSArray?, NSURLResponse?)->())) ->(){
^
|
/* Error: Insert ',' here */
completion(arr, resp)
}
Okay, it was not a syntactical error, but an error from my side. 好的,这不是语法错误,而是我的错误。 The method header I used here is different from the one in my code.
我在这里使用的方法标头与我的代码中的方法标头不同。 So this code that I originally posted should work fine.
因此,我最初发布的这段代码应该可以正常工作。
Typealias's are your friend here, just to make the code more readable Typealias是您的朋友在这里,只是为了使代码更具可读性
typealias onComplete = (NSArray?, NSURLResponse?) -> ()
func someMethodWithParam1(param: NSString, completion:onComplete) -> ()
{
completion(arr, resp)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.