Swift中的Objective-C完成块

时间:2014-07-05 15:19:26

标签: ios objective-c swift

我想在Swift中调用一个完成块,就像我在Objective-C中一直做的那样。我看了一下封口,但出于某种原因,我无法让它工作......

的OBJ-C:

- (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)

}

修改

好吧,这不是语法错误,而是我身边的错误。我在这里使用的方法标题与我的代码中的方法标题不同。所以我最初发布的代码应该可以正常工作。

1 个答案:

答案 0 :(得分:3)

Typealias是你的朋友,只是为了让代码更具可读性

typealias onComplete = (NSArray?, NSURLResponse?) -> ()

func someMethodWithParam1(param: NSString, completion:onComplete) -> ()
{

    completion(arr, resp)

}