什么是等同的。 Swift Closure-回调到Objective-C的块回调?

时间:2014-10-21 21:08:56

标签: swift callback

我正在尝试翻译以下Objective-C回调:

typedef void (^MKLocalSearchCompletionHandler)(MKLocalSearchResponse *response, NSError *error);

enter image description here

...进入等效的Swift回调:

typealias MKLocalSearchCompletionHandler = (MKLocalSearchResponse!, NSError!) -> Void

enter image description here

......显然我在这里迷路了。
什么是Swift回调的正确“shell”或“结构”?

1 个答案:

答案 0 :(得分:2)

语法不正确。它应该是

let handler : MKLocalSearchCompletionHandler = { (r: MKLocalSearchResponse?, e: NSError?)  in /*do something*/ }

最好省略参数类型,让编译器推断它

let handler : MKLocalSearchCompletionHandler = { r, e in /*do something*/ }

顺便说一下,当你下次发帖时,请使用文字而不是图片。所以我可以复制&粘贴&修改你的代码,也可以被其他人搜索。