无法分配类型'的不可变表达式字符串&#39?;

时间:2015-11-09 21:21:40

标签: ios swift

在此处使用表格视图中的文字。我遇到了第二段代码的问题。

这有效:

var objects:CKRecord!


override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

   Notes.text = objects.objectForKey("content") as? String

}

然而,这不起作用:

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)

    objects.objectForKey("content") as? String = Notes.text // problem line

}

为什么不呢?

2 个答案:

答案 0 :(得分:2)

找到解决方案:

@IBAction func Save(sender: AnyObject) {

   objects["content"] = Notes.text as? String
}

答案 1 :(得分:1)

您的原始尝试不起作用,因为objects.objectForKey("content") as? String R值objects.objectForKey(_:)方法和as?运算符都返回只读值你不能分配给。

您发布的解决方案有效,因为[]运算符会为词典返回inout值,使objects["content"]成为 L值

有关L值和R值的解释,请参阅this Wikipedia article