应用程序包中的只读SQLite数据库

时间:2016-03-27 01:49:06

标签: ios sqlite nsbundle

假设我已将一个大型内部参考数据SQLite数据库与我的iOS应用程序捆绑在一起。它永远不会在运行时写入,只能在新的应用程序版本中更改。

通常,预先生成的SQLite数据库文件在被使用之前将被复制到应用程序的库或用户文档目录中,以允许读取访问。但是,因为在这种情况下不需要:将文件保留在应用程序包中并从那里使用它是否有任何损害,潜在的性能问题或其他问题?

换句话说:

let myBundledDatabase = NSBundle.mainBundle().pathForResource("MyDatabase", ofType: "db")!
sqlite3_open(myBundledDatabase, // ...

1 个答案:

答案 0 :(得分:3)

这应该可以正常工作。打开文件时指定SQLITE_OPEN_READONLY标志并使用sqlite3_open_v2(...)