Swift 错误 - 不可变值 '' 可能不会传入输出
Posted
技术标签:
【中文标题】Swift 错误 - 不可变值 \'\' 可能不会传入输出【英文标题】:Swift error - immutable value '' may not be passed inoutSwift 错误 - 不可变值 '' 可能不会传入输出 【发布时间】:2015-02-10 10:32:13 【问题描述】:我更新到了新的 Swift 1.1。我有一个可选变量:
let bookingButton: GreenButton?
当我尝试将此 UIView 子类添加为子视图(自身是 UIView)时,出现以下错误:
Immutable value '' may not be passed inout
有什么想法吗?
【问题讨论】:
使用“var”而不是“let” 此外,如果您尝试将隐式展开的可选(例如 UIView!)传递给期望展开类型(例如 UIView)作为 inout 参数的函数,您将得到这个错误信息。您必须将该函数的 inout 参数声明为隐式展开类型。 @PeterParker 这对我帮助很大。有相关文件吗? 【参考方案1】:inout 指定可以由函数更改的参数。在这里,您传递了一个 let
(一个不可变参数),所以这是不兼容的。您可以将 lookingButton
从 let
更改为 var
以解决此问题。
如 Apple 文档中所述:
您只能将变量作为输入输出参数的参数传递。 您不能将常量或文字值作为参数传递,因为 常量和文字不能被修改。您放置一个 & 号 (&) 当您将变量作为参数传递给变量时,直接在变量名称之前 一个 inout 参数,表示它可以由 功能。
【讨论】:
以上是关于Swift 错误 - 不可变值 '' 可能不会传入输出的主要内容,如果未能解决你的问题,请参考以下文章
不能对不可变值使用变异 getter:'self' 是不可变错误