一尘不染

具有预先填充的sqlite数据库的iOS船运应用程序

swift

我想将我的ios应用程序(用swift编写)与预先填充的sqlite数据库一起发货,该数据库将通过与服务器同步进行更新。在android中,我可以将db从assests文件夹移动到数据库和volla,但是在ios中,我很安静,我该如何实现呢?

谢谢


阅读 249

收藏
2020-07-07

共1个答案

一尘不染

在iOS中,您可以将数据库添加到ProjectSupporting文件中。这将与二进制文件一起添加,然后您就可以访问它并进行复制。

要从NSBundle获取预填充数据库的位置:

let databasePath = NSBundle.mainBundle().URLForResource("databaseName", withExtension:"sqlite3");

使用NSFileManager获取文档目录的URL

//Should have an error pointed in case there is an error.
let documentsDirectory = NSFileManager.defaultManager().URLForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomain:NSSearchPathDomainMask.UserDomainMask, url:nil, shouldCreate:false, error:nil);

最后复制文件:

if let source = databasePath, destination = documentsDirectory
{
   destination = destination.URLByAppendingPathComponent("database.sqlite3")
   var result = NSFileManager.defaultManager().copyItemAtURL(source, toURL:destination, error:nil)

   //Should have an error pointer, check that the result is true. If not check error.
}
2020-07-07