我使用Xcode 8將代碼轉換爲Swift,但編譯器警告在使用閉包語法在Swift 2.3中創建的一些嵌套函數中添加@escape
。我已經發現了一些其他關鍵字也@noescape
和@autoclosure
,但我有這方面的一些問題:@noescape,@ escaping和@autoclosure有什麼區別?
- 這是什麼關鍵字的功能性需求?
- 什麼是寫作的影響
@escaping
? - 有必要寫嗎?
- 是
@autoclosure
的行爲與@escape
的行爲相同嗎? - 何時使用哪個關鍵字以及爲什麼?
這裏是Swift-evolution文件,但沒有太多從它。
我剛剛注意到你已經標記了Swift 3的問題。在Swift 3中沒有'@ noescape'或'@ escape'。 – Sulthan