【发布时间】:2016-07-03 18:23:49
【问题描述】:
我正在为一个早期使用 phone gap 开发的 iOS 应用工作。它有一个用于存储数据的 sqlite 数据库。但是现在在本地开发相同的应用程序时,我正在使用核心数据来存储数据。
现在,当新的本机应用程序替换用户设备上的旧电话间隙应用程序时,我想将现有 sqlite 文件中的数据复制到核心数据中。
因此,当我在预先安装了 phone gap build 的设备上运行应用程序时,我的 app(native) 会替换旧版本,因为我使用的是相同的捆绑 ID,但我无法找到该 sqlite 文件的路径。 sqlite 文件是否仍然存在于文档目录中?
【问题讨论】:
-
这似乎是一个奇怪的决定;您可以继续使用 sqlite 并且根本不需要任何迁移。就目前而言,您必须构建一个 sqlite 接口,以便在迁移期间读取旧数据并使用 CoreData 将其插入新数据库(iOS 应用程序完全支持迁移)。
-
@Droppy:但问题是我根本无法访问 sqlite 文件。如果我能得到路径,那么我将进行迁移。即使我使用过 sqlite,也会出现同样的问题,因为我无法获取已创建的 sqlite 文件的路径。
-
如果您不知道手机间隙将文件存储在哪里,它必须在文档文件夹中,您需要编写一些代码来显示文档文件夹中的所有文件。但是,您需要找到一种方法来重放迁移。 iOS 不会在迁移过程中删除文档文件,所以这不是问题。
标签: ios objective-c sqlite core-data nsdocumentdirectory