【发布时间】:2015-04-08 22:58:04
【问题描述】:
我正在尝试添加将数据从 iPhone 发送到 Watch 的功能。 我已经设置了应用程序组并且一切运行顺利,但是当我尝试在 Watch Extension 文件中向 NSUserDefaults 添加观察者时,应用程序总是在启动时崩溃。 (是的,我已经验证了应用组名称是正确的,并在所有目标功能中进行了检查,并且所有配置文件在启用应用组的情况下都是最新的)
代码:
override func willActivate()
{
super.willActivate()
NSUserDefaults(suiteName: "my.suite.name")?.addObserver(self, forKeyPath: "phoneSaysHello", options: NSKeyValueObservingOptions.New, context: nil)
}
override func didDeactivate()
{
super.didDeactivate()
// Remove listener for commands sent from phone
NSUserDefaults(suiteName: "my.suite.name")?.removeObserver(self, forKeyPath: "phoneSaysHello", context: nil)
}
错误:
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“一个实例 NSUserDefaults 类的 0x7f99534559b0 被释放,而键值 观察员仍然在它那里注册。当前观察信息: ( 上下文:0x0,属性:0x7f9953609200>)'
【问题讨论】:
标签: ios nsuserdefaults key-value-observing watchkit