我遇到了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")
}
}
谢谢!