2016-07-21 59 views
1

我使用像斯威夫特關閉改變

{ [capturedVar] otherVar in 
    // Some code here 
} 

關閉。當我試圖改變capturedVar捕獲變量,會出現一個錯誤,說這是一個持續的,不能改變。有沒有辦法改變閉包內的捕獲變量(我需要將原件更改爲,因此複製不是選項)?

+4

不要捕捉它... –

+1

@MartinR,OMG,這麼簡單 –

回答

0

從Swift 2開始,捕獲的變量始終是常量,並且此行爲無法更改。

您可以關閉內改變變量這種方式(這是一種伎倆):

{ [capturedConst] otherVar in 
    var capturedVar = capturedConst 
    // Some code here 
} 

也都表示,要改變原來的變量,也:

在這種情況下,我建議您檢查inoutparameter definition或最終從閉包中返回新的已更改變量。