我想问一下如何在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引用的答案都是正确的。 Apple将iOS应用程序的NSUserDefaults
转发为只读值,但手表有自己的NSUserDefaults
优先选择。文档的主要内容是让观看应用程序远离使用NSUserDefaults
的共享容器组(因为这是WatchKit
应用程序的实现方式)。在watchOS
,Apple已经添加了WatchConnectivity
,这是在iOS和手表应用程序之间共享数据的标准。
要回答第二个问题,请依靠NSUserDefaults
,因为您通常会单独存储与每个应用程序相关的首选项,并使用WatchConnectivity
在应用程序之间共享数据。