[英]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.