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

Ita*_*mar 7 ios swift apple-watch watchkit watchos-2

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

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

我的问题是:数据模型应该在哪里存储/持久化?甚至有必要吗?我应该使用核心数据吗?内存中的单例对象?SQLite?用户默认值?一个简单的 JSON 文件?在为 watchOS 编写应用程序时,保持数据模型的首选方式是什么?

我希望存储一组非常简单的对象(例如联系人列表,其中每个联系人都有姓名、地​​址和电话号码,所有这些都表示为String对象)

这是 WWDC 2016 会议的链接,名为“保持您的手表应用程序最新”,它解释了我提到的大多数任务和最佳实践 - WWDC 2016:保持您的手表应用程序最新

jak*_*ake 5

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

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

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

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