簡體   English   中英

Swift中正確的塊語法是什么

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM