[英]What is the correct block syntax in Swift
所以我在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
}
如果塊簽名是
void (^PHBridgeSearchCompletionHandler) (NSDictionary *)
然后閉包應該是這樣的:
{ (bridgesFound: NSDictionary?) -> () in
...
}
但是如果你知道字典包含相同類型的對象,讓我們說Int
,並且鍵類型是String
,那么你也可以把它寫成
{ (bridgesFound: [String:Int]) -> () in
...
}
由您決定是否可選,具體取決於您的使用方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.