WatchKit:Swift - 如何在我的iPhone应用程序文档文件夹

时间:2016-07-15 06:26:16

标签: objective-c swift sqlite watchkit ios-app-group

我有一个使用SQLite数据库的iOS应用程序。这非常好。 现在我添加了一个WatchKit App Extension,并希望连接到我的iPhone应用程序的Documents文件夹中的现有数据库。

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

我已经创建了一个app-group(所有扩展名都相同)。

如果重要,iOS应用程序是用Objective-C编写的,手表应用程序是用Swift编写的。

Screenshot of iPhoneApp and WatchApp

1 个答案:

答案 0 :(得分:1)

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

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

方法1:

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

如果手表需要访问任何和所有数据,这将非常有用,并且必须独立于手机操作(如果手表无法使用)。

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

您还可以在手机和手表之间transfer the entire database,但这通常比仅发送更改更节能。

方法2:

仅将当前上下文传输到手表,因此用户可以浏览手表以查看手机显示的相同信息。

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

updateApplicationContext非常适合此方法,以传递应在手表上显示的最新信息。