当前位置:  开发笔记 > 数据库 > 正文

iOS中不同位置的商店数据库有何不同?

如何解决《iOS中不同位置的商店数据库有何不同?》经验,为你挑选了1个好方法。

我正在使用SQLite.swift.在文档中,数据库的路径是:

let path = NSSearchPathForDirectoriesInDomains(
                .DocumentDirectory, .UserDomainMask, true
                ).first!

但我想导入并使用现有数据库,所以我将现有数据库拖到我的键盘扩展文件夹中,并使用路径创建与它的连接:

let path = NSBundle.mainBundle().pathForResource("db", ofType:"sqlite3")

所以,我注意到第一种方式,数据库将存储在 /Users/*/Library/Developer/CoreSimulator/Devices/8B1DB861-AA3F-446F-A559-D4727CDB9285/data/Containers/Data/PluginKitPlugin/0BC647E4-26F3-4A1F-8271-CC73C96FD197/Documents

第二种方式,数据库将存储在应用程序中.

/Users/*/Library/Developer/CoreSimulator/Devices/8B1DB861-AA3F-446F-A559-D4727CDB9285/data/Containers/Bundle/Application/E5D9514C-859A-4D4D-A771-A8CE9CDCD3E7/AppName.app/PlugIns/AppNameExt.appex

这两个地方有什么不同?第二种方式可能会增加应用程序的大小,因为它包含数据库?如果我想使用现有数据库将我的应用程序存档/提交到AppStore,这是唯一的方法吗?



1> trojanfoe..:

主要区别在于将文件存储在文档文件夹中意味着您可以编写(更新)它,这对于数据库文件非常重要.您无法写入应用程序包中的文件.

在应用程序中使用数据库的常用模式是:

    在开发期间创建预先播种的数据库,并在构建期间将其复制到应用程序包.

    运行时,检查数据库文件是否存在并且是否在documents文件夹中是最新的.

    如果没有,请从应用包中复制它.

    打开文档文件夹中的数据库并根据需要进行读/写.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有