我正在使用关闭
{ [capturedVar] otherVar in
// Some code here
}
当我尝试更改captureVar时,会出现一个错误,说它是常量且无法更改。有没有办法在闭包内更改捕获的变量(我需要将原件更改为,所以复制不是一个选项)?
答案 0 :(得分:0)
从Swift 2开始,捕获的变量始终是常量,并且无法更改此行为。
您可以通过这种方式更改闭包中的变量(这是一种技巧):
{ [capturedConst] otherVar in
var capturedVar = capturedConst
// Some code here
}
您还表示您也希望更改原始变量:
在这种情况下,我建议您检查inout
parameter definition,或者最终从关闭中返回新更改的变量。