WatchKit:Swift - 如何获取数据并将其放入位于 iPhone 应用程序文档文件夹中的 sqlite 数据库中

WatchKit: Swift - How can I get and put data in my sqlite database that resides in my iPhone App documents folder

我有一个使用 SQLite 数据库的 iOS 应用程序。这很好用。 现在我添加了一个 WatchKit 应用程序扩展,并想连接到我的 iPhone 应用程序的文档文件夹中的现有数据库。

有人可以告诉我怎么做吗?

我已经创建了一个应用程序组(所有扩展都一样)。

如果有关系,iOSapp写在Objective-C,手表app写在Swift.

自 watchOS 2 起,手表应用程序无法再访问共享应用程序组中的数据,因为手表应用程序扩展现在在手表上运行,而不是 iPhone。

共享应用程序组不会完成您想要的。您必须使用 Watch Connectivity 来完成您想要的。

方法一:

维护两个独立的数据库 — 一个在 phone 上,一个在手表上 — 并使两个独立的数据库保持同步。

如果手表需要访问任何和所有数据,并且必须独立于 phone 操作,如果无法访问,这将很有用。

transferUserInfo 非常适合这种方法,可以在 phone 和手表之间同步新的、更新的或删除的潜水计划。

您也可以在 phone 和手表之间 ,但这通常比仅发送更改更节能。

方法二:

只将当前上下文传输到手表,因此用户可以扫一眼手表,看到 phone 显示的相同信息。

对于像您的潜水应用程序这样的东西,它可能只传输最近或即将到来的潜水计划,而不是在较小的屏幕上显示每个潜水计划。

updateApplicationContext 很适合这种方法,传递应该在手表上显示的最新信息。