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

Read-only SQLite database in application bundle

假设我已经将一个大型内部参考数据 SQLite 数据库与我的 iOS 应用程序捆绑在一起。它永远不会在运行时写入,并且可能只会随着新应用的发布而改变。

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

换句话说:

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

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