iOS 中捆绑资源中的 Sqlite3

2023-12-08

您好,我计划从我的项目资源文件夹添加静态 SQLite3,但我不知道我是否正确执行。

到目前为止,这是我的进展... 创建 SQLite3 数据库SQLite 数据库浏览器

Copied Sqlite3 Database to my project folder enter image description here

Added network.db to my project resource folder enter image description here

现在我不知道下一步该去哪里..我希望有人可以帮助我解决我的问题。


如果您在运行时修改数据库(即插入、删除或更新记录),则需要创建从包到文档目录的副本。 iOS sendboxing 机制不允许您在运行时修改捆绑资源。因此,您需要将其复制到文档目录中。下面的代码可以帮助你:

 NSFileManager *fileManager = [NSFileManager defaultManager];
 NSError *error = nil;

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
 NSString *documentsDir = [paths objectAtIndex:0];
 NSString *filePath = [documentsDir stringByAppendingPathComponent:@"network.db"];

 BOOL success = [fileManager fileExistsAtPath:filePath];

 if(!success)
 {
      NSString *defaultDBPath = [[[NSBundle mainBundle] pathForResource:@"network" ofType:@"db"];
      success = [fileManager copyItemAtPath:defaultDBPath toPath:filePath error:&error];

      if (!success)
           NSAssert1(0, @"Failed to create writable resource file with message '%@'.", [error localizedDescription]);

 }

如果您仅将数据库用于查找目的(仅将其用于选择查询),则无需从捆绑包复制到文档目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 中捆绑资源中的 Sqlite3 的相关文章

随机推荐

  • 将 XMPP 集成到 Rails 需要什么?

    这是我到目前为止所拥有的 XMPP 服务器 Ejabberd 或Vine Rails 中的 XMPP 库 Blather 客户端上的 XMPP 库 Strope js 这是我将聊天集成到我的 Rails 应用程序中所需要的吗 编辑 来自 V
  • 匿名方法/Lambda(编码标准)

    在 Jeffrey Richter 的 CLR via C net 2 0 版第 353 页 中 他表示 作为一种自律 他从不使匿名函数的代码长度超过 3 行 他主要引用可读性 可理解性作为他的理由 这很适合我 因为我已经养成了使用匿名方法
  • Laravel - 更改特定 URL 的数据库连接?

    我对使用 Laravel 框架相当陌生 我有以下要求 我有一个域 example com 它的整个代码堆栈都在 laravel 中运行 假设在配置中默认数据库连接是 db1 现在 如果网址变为 example com country 我希望
  • JDBC 4 的 java.sql.Clob.free() 方法和向后兼容性

    我正在调查一个有趣的性能问题 其中没有调用java sql Clob free 在经常使用的资源上 这个方法在Clob是在 Java 6 JDBC 4 中引入的 因此这很可能实际上是从 JDBC 3 升级到 JDBC 4 时引入的回归 这是
  • Python OpenCV 实时人脸检测裁剪保存

    我对此进行了大量的研究 我认为我的逻辑已经磨损了 几乎在那里 但似乎无法理解为什么 cv2 imshow 窗口中没有显示任何内容 只是一个灰色的框 但好消息是我是能够检测脸部并裁剪该脸部 然后将其保存在文件夹中 你能告诉我我哪里出了问题吗
  • 旋转和移动画布元素中的图像?

    我想在元素中移动和旋转球的图像 球的尺寸为 68x68 画布的尺寸为 300x200 球沿着 x 和 y 轴移动 当它撞到墙壁时翻转它的 x 和 y 速度 所有这些都有效 我只是不知道如何在运动的基础上进行旋转 我的draw 函数每30毫秒
  • 来自 glmer 的反向变换系数以及用于预测的缩放自变量

    我使用以下方法安装了混合模型lme4包裹 我用以下方法转换了自变量scale 拟合模型之前的函数 我现在想使用以下方式在图表上显示我的结果predict 所以我需要将预测数据恢复到原始规模 我该怎么做呢 简化示例 database lt m
  • 无法从 Linux 容器切换到 Windows 容器

    我最近从头开始重建我的电脑 我已经安装了 Windows 版 Docker 我无法从 Linux 容器切换到 Windows 容器 这是我得到的错误 Error response from daemon open pipe docker e
  • 如何打印完整的 NumPy 数组而不截断?

    当我打印 numpy 数组时 我得到一个截断的表示 但我想要完整的数组 gt gt gt numpy arange 10000 array 0 1 2 9997 9998 9999 gt gt gt numpy arange 10000 r
  • 如何计算具有指数的字符串

    Javax ScriptEngine 和 JEval 的工作原理类似 您输入一个字符串并将其发送给它进行评估 它会返回您的结果 在 ScriptEngine 中 在 JEval 中几乎相同 System out println engine
  • VSCode:快速切换flutter版本

    所以 我使用的是 flutter 2 2 3 版本 现在无法升级 但是 我的另一个项目需要更高的SDK 我知道 有FVM 但我发现了这个 如何在同一设备上针对不同项目使用两个版本的flutter 并引用文章 https dartcode o
  • c#: SetScrollPos (user32.dll)

    我想要 2 个 丰富的 文本框 bc 2k8 具有相同的滚动 所以当我滚动 tb1 时 tb2 滚动到相同的位置 我使用这个功能 DllImport user32 dll static extern int SetScrollPos Int
  • Go 中空接口的最佳实践?

    我正在学习空接口 我发现虽然在 Stackoverflow 上有很多关于空接口的含义及其工作方式的解释 但关于何时 为何使用它们 何时避免 考虑因素是什么以及如何使用它们的最佳实践信息却很少 选择使用它们的优点和缺点 在 Go 聊天室中 我
  • knit/rmarkdown/Latex:如何交叉引用图形和表格?

    我正在尝试交叉引用使用knitr rmarkdown 生成的PDF 中的图形和表格 关于 SO 和 tex stackexchange 有一些问题 here and here 例如 建议内联执行此操作的方法是添加 ref fig my fi
  • 将 _blank 添加到所有外部链接[重复]

    这个问题在这里已经有答案了 可能的重复 获取 A 元素的 href 属性 解析 href 标签中包含特定单词的所有链接 我使用以下函数将 blank 添加到我网站上的所有链接 function targetBlank text return
  • PHP 中的 curl_setopt() 中 RETURNTRANSFER 常量的用途

    我想了解 PHP 中curl 的工作细节 有什么用curl setopt ch curl returntransfer true 我搜索了很多网站但没有得到答案 那么请告诉我这个特殊的功能 为什么我们使用CURL RETURNTRANSFE
  • 重复的局部变量和变量无法解析

    我的 java 代码中出现了三个不同的错误 有什么帮助吗 错误一 重复的局部变量乘积 int product input nextInt 错误 2 productTotal 无法解析为变量 System out printf 10 2f n
  • setTimeout 存在字段更新的循环问题

    我正在尝试循环遍历计时器上的列表 当前为 1 秒 但我希望它更快 问题是当前值没有在视觉上更新 我不明白为什么 当我循环遍历时Firebug it works按预期但没有萤火虫它没有显示文本更改 它是否以某种方式跳过文本更新 我把定时器设置
  • 如何使用 xml starlet 插入实体

    我试图用包含 符号的文本替换属性值
  • iOS 中捆绑资源中的 Sqlite3

    您好 我计划从我的项目资源文件夹添加静态 SQLite3 但我不知道我是否正确执行 到目前为止 这是我的进展 创建 SQLite3 数据库SQLite 数据库浏览器 Copied Sqlite3 Database to my project