在 OS X 上,将 SQLite 数据库放在哪里以防止其在更新期间被覆盖?

2023-12-27

我正在开发我的第一个 OS X 应用程序,该应用程序将通过 Mac App Store 分发。

该应用程序使用 sqlite 数据库,我目前将其保存在与应用程序文件依赖项的其余部分相同的位置。

我正在使用 Qt Framework 来开发该应用程序。

遵守 App Store 规则;

  • 我在哪里可以找到数据库文件,以免在应用程序更新期间被覆盖?

  • 我应该如何构建 .app 文件夹和所有依赖项?

谢谢。


您的问题意味着您正在写入 sqlite 数据库,这是一个坏主意,因为应用程序将存储在某个位置(/Applications),用户可能没有写入权限。

您应该做的是将数据库复制/创建到用户可写区域(Documents首次使用时(或当您检测到它不存在时)并从那里使用它。

EDIT:为了获取文档目录,请使用以下代码:

NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

这将为您提供应用程序容器的位置Documents目录,而不是应用程序沙盒时用户的文档目录:

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

在 OS X 上,将 SQLite 数据库放在哪里以防止其在更新期间被覆盖? 的相关文章

  • 更新查询时 ios 中出现“数据库锁定”错误

    我正在使用下面的代码更新查询 using sqlite 但我越来越 database is locked error 我尝试搜索一些 SO 链接 建议关闭数据库 但我再次执行此操作时遇到相同的错误 我已经提到过代码中出现错误的地方 cons
  • OpenCV 和 QT 之间的集成

    我对 QT 和 OpenCV 开发完全是新手 一般来说是 C 我想使用 OpenCV 开发一个应用程序并使用 Qt 创建其界面 我不明白的是 如何整合这两个部分 我的意思是 为了开发 java 我只使用 eclipse 它为我提供了 JFr
  • Python - Virtualenv,python 3?

    似乎每个人都推荐 virtualenv 用于多个 python 版本 在 osx 上 但它甚至可以与 python 3 0 一起使用吗 我下载了它 但似乎没有 而且我真的不明白它是如何工作的 你能一次 打开 环境吗 我想要的是离开系统 py
  • git lineends redux - Mac OS git 与 Windows 用户的贡献

    我在 Mac OS X 上进行开发 我有一个用户正在贡献带有 CRLF 行结尾的代码 他目前不使用 git 我创建一个分支 然后将我的工作树切换到它 我将他的文件复制到工作树中 当我尝试暂存文件时 收到错误fatal CRLF would
  • 在android中将SQLite数据库导出到csv文件

    我正在尝试将 SQLite 数据作为目录中的 CSV 文件导出到 Android 中的 SD 卡 所以我尝试了下面的方法 显然它只显示打印出来的文本 数据库的第一个表日期 项目 金额 货币 在我的 DBHelper java 中 我定义了该
  • Python 和 SQLite:插入表

    具有以下表架构 tablename name varchar 100 age int sex char 1 有一个list有 3 行 每行代表一个表行 row1 laks 444 M row2 kam 445 M row3 kam 445
  • 核心数据:是否可以在分组中使用自定义函数

    在 Objective C 中制作 NSFetchRequest 时 是否可以按组使用自定义函数 strftime sql语句在sqlite中完全有效 select date count from note group by strftim
  • 何时为自定义视图创建 Interface Builder 插件?

    您何时建议使用插件将自定义视图集成到 Interface Builder 中 当浏览苹果的时候Interface Builder 插件编程指南 http developer apple com documentation Developer
  • Qt jpg图像显示

    我想在 Qt UI 中显示 jpg 图像 我上网查了一下 发现https doc qt io archives qt 4 8 qt widgets imageviewer example html https doc qt io archi
  • Qt: 主窗口->show();不显示主窗口

    在下面的代码中 我创建一个窗口 调用window show 但窗口直到之后才显示window gt iterateSolution 叫做 几乎就好像 app exec 是显示窗口的函数 我对 Qt 很陌生 所以我不知道发生了什么 inclu
  • 插入新的 USB 设备时会发生什么?

    我有一个带有 USB 连接的嵌入式设备 当用户将设备插入 PC Windows OSX 时 操作系统如何发现要安装哪些驱动程序 如何得到my驱动程序被选择 它们可以驻留在某个中央服务器上 由操作系统供应商运行 吗 这是针对 Windows
  • SQLite适合并发读吗?

    在没有锁定的情况下 SQLite 数据库的性能是否能达到每秒 50 次读取左右 我正在尝试确定它是否可以在不会经常 写入 的 PHP 网站上使用 它主要是从一小部分表中读取相同的数据 没问题 并发读 写实际上会被 SQLite 序列化 所以
  • Mac 无法安装 Tensorflow

    我检查了我的 pip3 和 python3 版本 tensorflow MacBook Pro de Hector 2 tensorflow hectoresteban pip3 V pip 10 0 1 from Users hector
  • Xamarin Macintosh 客户 URL 协议句柄传递的参数

    我编写了一个处理自定义协议的 Macintosh 应用程序
  • 无法构建 lldb - 找不到“原子”文件

    我正在尝试建立lldb这是 Clang LLVM 3 4 2 下载的一部分LLVM 下载页面 http llvm org releases download html 我可以构建 LLVM Clang Compiler RT 和 Extra
  • 如果值不为空,则更新数据库的 SQL 查询?

    我有一个大约有 17 个字段的表 我需要在此表中执行频繁更新 但问题是每次我可能只更新几个字段 在这种情况下编写更新查询的最佳方法是什么 我正在寻找一个选项 其中仅当值不为空时才会更新 例如 我在数据库中有四个字段 A B C D 用户更新
  • QT 和 Crypto++ 以及 /MTd

    我有两个带有 MSVC2013 32 位编译器的 QT 5 5 项目 第一个是 Qt 控制台应用程序 正在使用 crypto 这两个在 pro 文件中 QMAKE CXXFLAGS RELEASE MT QMAKE CXXFLAGS DEB
  • 如何重命名 MacOS/X 程序中的程序名称菜单标签?

    我有一个在 MacOS X 下运行的基于 Qt 的 GUI 程序 我希望能够更改该程序的第一个菜单标题的标签 即此屏幕截图中用红色圈出的标签 有没有一种编程方法可以做到这一点 假设不存在基于 Qt 的解决方案 则 Objective C 本
  • 在 QML 中使用 C++ 枚举作为字符串

    我想做的是在 C 中使用以下枚举 class MyClass public QQuickItem Q OBJECT Q PROPERTY MyEnum enumValue READ getEnumValue public enum MyEn
  • SQLDroid 和加密数据库

    我的应用程序有一个已经存在的数据库 已经存在 是指我不在我的应用程序中创建数据库 我只是连接到它并读取数据 为了设置连接 我使用 SQLDroid 现在我想知道是否有可能使用 SQLDroid 加密我的数据库 否则我的数据库未加密 任何人都

随机推荐