Objective c Swift中正确的块语法是什么

Objective c Swift中正确的块语法是什么,objective-c,syntax,swift,block,Objective C,Syntax,Swift,Block,所以我在用Swift重写一些Obj-C代码,无意中发现了一个让我发疯的块。 我已经在stackoverflow上查看了apple提供的文档和其他一些资源。不幸的是,我还没有找到解决办法。我有一段obj-c代码,我想用Swift重新编写。也许你能帮我弄清楚怎么做。我真的很感激 - (void)startSearchWithCompletionHandler:(PHBridgeSearchCompletionHandler)completionHandler; 被称为: [self.bridgeS

所以我在用Swift重写一些Obj-C代码,无意中发现了一个让我发疯的块。 我已经在stackoverflow上查看了apple提供的文档和其他一些资源。不幸的是,我还没有找到解决办法。我有一段obj-c代码,我想用Swift重新编写。也许你能帮我弄清楚怎么做。我真的很感激

- (void)startSearchWithCompletionHandler:(PHBridgeSearchCompletionHandler)completionHandler;
被称为:

[self.bridgeSearch startSearchWithCompletionHandler:^(NSDictionary *bridgesFound) { ...
到目前为止,我得出了以下结论:

var bridgeSearching : PHBridgeSearching = ...

bridgeSearching.startSearchWithCompletionHandler { (bridgesFound: AnyObject!) -> PHBridgeSearchCompletionHandler in
}

如果块签名是

void (^PHBridgeSearchCompletionHandler) (NSDictionary *)
那么闭包应该是这样的:

{ (bridgesFound: NSDictionary?) -> () in
    ...
}
但是如果您知道字典包含相同类型的对象,比如说
Int
,并且键类型是
String
,那么您也可以将其编写为

{ (bridgesFound: [String:Int]) -> () in
    ...
}

这取决于您是如何使用它的,您是否可以选择它。

非常感谢您的解释和您为回答我的问题所做的努力!