首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift闭包更改捕获变量

Swift闭包更改捕获变量
EN

Stack Overflow用户
提问于 2016-07-21 16:43:19
回答 1查看 262关注 0票数 2

我用这个结束就像

代码语言:javascript
复制
{ [capturedVar] otherVar in
    // Some code here
}

当我试图更改capturedVar时,会出现一个错误,表示它是一个常量,不能更改。是否有任何方法来更改闭包内捕获的变量(我需要将原始变量更改为,所以复制不是一个选项)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-22 07:14:36

从Swift 2开始,捕获的变量总是常量,不能更改此行为。

您可以以这种方式更改闭包中的变量(这是一种技巧):

代码语言:javascript
复制
{   [capturedConst] otherVar in
    var capturedVar = capturedConst
    // Some code here
}

您还指出,您也希望更改原始变量:

在这种情况下,我建议您检查inout 参数定义,或者最终从闭包中返回新更改的变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38509912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档