我正在使用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,这是唯一的方法吗?
答案 0 :(得分:5)
主要区别在于将文件存储在文档文件夹中意味着您可以编写(更新)它,这对于数据库文件非常重要。您无法写入应用包中的文件。
在应用程序中使用数据库的常用模式是: