Xcode 8.3中的错误 - "对象在没有发送适当的KVO通知的情况下发生了变化"

时间:2017-03-28 17:49:27

标签: swift xcode exception binding

我遇到了Xcode 8.3中出现的问题(样本在8.2.1版中正常运行)

我创建了一个NSTextField并将值绑定连接到ViewController self.myDict.String 按钮调用"更改"

当我启动应用程序时,字符串" Initial String"显示在文本字段中。 当我点击按钮时,我得到一个例外

  

无法为观察者更新   关键路径" myDict.String"来自,很可能是因为键的价值" myDict"   在没有发送适当的KVO通知的情况下已更改。校验   exceptiontest.ViewController类的KVO兼容性。

该问题首次出现在最新的Xcode 8.3中,并且在旧版本上运行良好。 这可能是一个错误,还是我有某种设计错误?

import Cocoa

class ViewController: NSViewController {

    dynamic var myDict = ["String":"Initial String"]

    override func viewDidLoad() {
        super.viewDidLoad()
    }


    @IBAction func change(_ sender: Any) {
        self.willChangeValue(forKey: "myDict")
        myDict["String"] = "New String"
        self.didChangeValue(forKey: "myDict")
    }

}

谢谢!

0 个答案:

没有答案