数据应该驻留在 watchOS 应用程序的什么位置?

Where should data reside in a watchOS app?

我浏览了与创建 watchOS 应用程序、复杂功能等相关的所有 Apple 文档和视频。仔细研究了更新数据的流程和用户界面 - 但有一件事我没弄明白。

在所有相关视频和文档中,都解释了一旦 URLSession 下载任务结束,应用程序应更新其数据模型并请求系统安排快照更新。

我的问题是:数据模型应该放在什么地方stored/persisted?有必要吗?我应该使用核心数据吗?一个 in-memory 单身人士 object?数据库?用户默认值?一个简单的 JSON 文件?为 watchOS 编写应用程序时,保存数据模型的首选方法是什么?

我希望存储一个非常简单的 object 数组(例如联系人列表,其中每个联系人都有姓名、地​​址和 phone 号码,所有这些都代表作为 String objects)

这是 WWDC 2016 session 的 link 名为 "Keeping Your Watch App Up to Date" 的内容,它解释了我提到的大部分任务和最佳实践 - WWDC 2016: Keeping Your Watch App Up to Date

将 watchOS 的持久数据存储在云端或配套 iPhone 应用程序中通常是最佳做法。我的猜测是 'data model' 所指的来源是活动存储中的数据,即应用程序打开时的数据。如果你不需要,你不应该在本地存储冗余数据,尤其是。不适用于 watchOS。

综上所述,watchOS 确实可以访问 CoreData 和 NSCoding 方法。我不确定 NSUserDefaults - 但我不会用它来存储数据。 (这也是 iOS 的一般原则:CoreData 用于数据,而 UserDefaults 用于用户首选项。) 是一个类似的线程,解释了这是如何完成的。

但我强烈建议在将数据存储到手表上之前先找到替代方案 - 那里没有大量可用的持久存储 space。

编辑:查看 Apple 的 WatchKit docs 了解有关您的选项的更多详细信息。