所以我在Swift中重写了一些Obj-C代码,偶然发现了一个让我疯狂的块。 我已经看过apple和其他一些资源提供的文件在stackoverflow上。不幸的是,我找不到解决方案了。我得到了那些我想在Swift中重写的obj-c代码。也许你可以帮我弄清楚如何做到这一点。我真的很感激!
- (void)startSearchWithCompletionHandler:(PHBridgeSearchCompletionHandler)completionHandler;
并像这样调用:
[self.bridgeSearch startSearchWithCompletionHandler:^(NSDictionary *bridgesFound) { ...
到目前为止,我提出了这个问题:
var bridgeSearching : PHBridgeSearching = ...
bridgeSearching.startSearchWithCompletionHandler { (bridgesFound: AnyObject!) -> PHBridgeSearchCompletionHandler in
}
答案 0 :(得分:0)
如果块签名是
void (^PHBridgeSearchCompletionHandler) (NSDictionary *)
那么闭包应该是这样的:
{ (bridgesFound: NSDictionary?) -> () in
...
}
但如果您知道字典包含相同类型的对象,请说出Int
,密钥类型为String
,那么您也可以将其写为
{ (bridgesFound: [String:Int]) -> () in
...
}
根据您的使用方式,决定是否选择它。