当前位置: 首页 > 面试题库 >

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

卫开济
2023-03-14
问题内容

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

谢谢


问题答案:

在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.
}


 类似资料:
  • 我正在尝试使用Cordova/Phonegap 3.5构建一个跨平台的移动应用程序。 首先,我尝试使用Eclipse和Android SDK创建Android版本。 其中一个要求是,我希望我的应用程序附带一些创建的数据库表,并预先填充一些数据。 到目前为止,我已经尝试了各种方法,但似乎都不起作用。 以下是我迄今为止所做的工作: > 使用windows上的sqlite3命令行实用程序创建了一个数据库

  • //内容提供程序代码 公共静态最终字符串授权=“com.battlestarMathematica.stayfresh.pantryprovider”; //游标加载程序代码

  • 这是我的代码只有第一个下拉框正在填充。我可以重复下拉框,但无法填充所有下拉框。请帮帮我... 我可以重复下拉框,但无法填充所有下拉框。请帮帮我... 我想将数据库中的数据显示到所有下拉框中,并保存所选值。我使用的提交按钮不起作用,请告诉我原因?

  • 我想使用预先填充的数据库的房间,但我不明白如何告诉房间在哪里找到我的数据库。 现在我将它放在中,当我为房间数据库创建实例时,我是这样创建的: 这样一来,我认为它每次都在创建一个新的数据库,或者说,它没有使用预填充的数据库。 我怎样才能找到我的数据库?

  • 这是我第一次来到这个网站。我已经在web上搜索了如何将sqlite数据库填充到可扩展的listview,但我失败了。 我遵循这些步骤来了解如何创建可扩展的listview,并修改一些代码使其动态化。 当我试图运行模拟器时,程序崩溃了。 我是android开发的新手,我需要你们专家的帮助…提前道谢。 哦..我很抱歉。这是我的logcat的结果...这只是错误部分。

  • 简介 Laravel 可以用 seed 类轻松地为数据库填充测试数据。所有的 seed 类都存放在 database/seeds 目录下。你可以任意为 seed 类命名,但是更应该遵守类似 UsersTableSeeder 的命名规范。Laravel 默认定义的一个 DatabaseSeeder 类。可以在这个类中使用 call 方法来运行其它的 seed 类从而控制数据填充的顺序。 编写 See