我想问一下如何在watchOS app上使用NSUserDefaults
。
它的数据是否与iOS应用的NSUserDefaults
数据不同?
There are a lot of有关此主题的stackoverflow问题,所有问题都有相同的答案。那就是说,例如
使用共享组观看与其iOS应用共享数据的应用 必须重新设计容器以不同方式处理数据。在watchOS 2中, 每个进程必须管理自己在本地的任何共享数据的副本 容器目录。对于实际共享和更新的数据 这两个应用程序,这需要使用Watch Connectivity框架 在他们之间移动数据。
但是,所有引用的文字都从the web page referred消失,请参阅this accepted answer。
相反,在当前的Apple Docs中。有
此外,iOS会自动转发iOS的只读副本 应用程序对Apple Watch的偏好。您的WatchKit扩展程序可以读取 那些使用NSUserDefaults对象的首选项,但它无法使用 直接更改为默认数据库。
我有两个问题:
哪一个是正确的:所有stackoverflow问题'我上面提到的答案,或Apple Docs
iOS使用哪种机制将NSUserDefaults对象转发给watchOS app?是否可靠依赖于未来的开发以及最新的数据是最新的。这个功能可以在不久的将来被弃用吗?
非常感谢
答案 0 :(得分:0)
要回答您的第一个问题,您从StackOverflow和Apple引用的答案都是正确的。 Apple将iOS应用程序的NSUserDefaults
转发为只读值,但手表为其首选项设置了自己的NSUserDefaults
。文档的主要内容是让观看应用程序远离使用NSUserDefaults
的共享容器组(因为这是WatchKit
应用程序的实现方式)。在watchOS
中,Apple添加了WatchConnectivity
,这是在iOS和观看应用之间共享数据的标准。
要回答您的第二个问题,请依靠NSUserDefaults
正常存储与每个应用相关的偏好设置,并使用WatchConnectivity
在应用之间共享数据。