我用这个结束就像
{ [capturedVar] otherVar in
// Some code here
}当我试图更改capturedVar时,会出现一个错误,表示它是一个常量,不能更改。是否有任何方法来更改闭包内捕获的变量(我需要将原始变量更改为,所以复制不是一个选项)?
发布于 2016-07-22 07:14:36
从Swift 2开始,捕获的变量总是常量,不能更改此行为。
您可以以这种方式更改闭包中的变量(这是一种技巧):
{ [capturedConst] otherVar in
var capturedVar = capturedConst
// Some code here
}您还指出,您也希望更改原始变量:
在这种情况下,我建议您检查inout 参数定义,或者最终从闭包中返回新更改的变量。
https://stackoverflow.com/questions/38509912
复制相似问题