Apple是否将NSUserDefaults从iOS应用程序分享到watchOS app

时间:2017-02-13 13:06:24

标签: ios nsuserdefaults watchkit apple-watch watch-os-2

我想问一下如何在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?是否可靠依赖于未来的开发以及最新的数据是最新的。这个功能可以在不久的将来被弃用吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

要回答您的第一个问题,您从StackOverflow和Apple引用的答案都是正确的。 Apple将iOS应用程序的NSUserDefaults转发为只读值,但手表为其首选项设置了自己的NSUserDefaults。文档的主要内容是让观看应用程序远离使用NSUserDefaults的共享容器组(因为这是WatchKit应用程序的实现方式)。在watchOS中,Apple添加了WatchConnectivity,这是在iOS和观看应用之间共享数据的标准。

要回答您的第二个问题,请依靠NSUserDefaults正常存储与每个应用相关的偏好设置,并使用WatchConnectivity在应用之间共享数据。