Apple是否将NSUserDefaults从iOS应用程序更改为watchOS应用程序

问题描述 投票:0回答:1

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

非常感谢

ios nsuserdefaults watchkit apple-watch watch-os-2
1个回答
0
投票

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

要回答第二个问题,请依靠NSUserDefaults,因为您通常会单独存储与每个应用程序相关的首选项,并使用WatchConnectivity在应用程序之间共享数据。

© www.soinside.com 2019 - 2024. All rights reserved.