NSSearchPathForDirectoriesInDomains 和持久数据的问题

2023-12-19

根据建议,我们使用以下代码来检索用户文档的路径

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

我们得到以下路径: /var/mobile/Applications/3E3C1F45-6649-4EA3-93FD-CDB802E346EC/Documents/

在上述路径中,我们保存了所有用户的持久数据。

我们遇到了一些问题,用户从应用程序商店升级了应用程序的版本,不再读取持久数据,可能路径已更改,可能在新版本中使用了新的 GUID。

由于这种情况仅在应用商店更新后发生,因此测试和调试此问题的能力有限。


当用户升级应用程序时,标识符(3E3C1F45-6649-4EA3-93FD-CDB802E346EC)可能会更改,但文档和缓存应从旧目录复制到新目录。

您是否有可能将绝对路径保存到持久数据并尝试在加载文件时使用它?您应该仅保存文档目录中的文件名和目录名,并在每次加载资源时(或至少在启动时)通过附加 NSSearchPathForDirectoriesInDomain 返回的路径来生成完整路径

换句话说,不要保存诸如

/var/mobile/Applications/3E3C1F45-6649-4EA3-93FD-CDB802E346EC/Documents/MyDirectory/MyFile.txt

而是保存:

/我的目录/我的文件.txt

并将其附加到 NSSearchPathForDirectoriesInDomain 在运行时返回的任何内容。

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

NSSearchPathForDirectoriesInDomains 和持久数据的问题 的相关文章

随机推荐

  • 使用 XAML 热重启部署 Xamarin.Forms iOS 应用程序时出错

    我尝试使用 Xamarin Forms 和热重启来开发 iOS 应用程序 但从 Visual Studio 运行该应用程序时不断出现以下错误 尝试部署应用程序 TestApp2 iOS app 时发生错误 详细信息 运行热重启时出错 将应用
  • 使用 python 将列表转换为字符串

    我有包含 int float 和 string 的列表 lists 10 test 10 5 如何将上面的列表转换为字符串 我努力了 val join lists print val 我收到这样的错误 sequence item 0 exp
  • C 职位面试 - 选角和比较

    我遇到了一个棘手的 IMO 问题 我需要比较两个MAC地址 http en wikipedia org wiki MAC address 以最有效的方式 那一刻我脑子里唯一的想法就是一个微不足道的解决方案 一个for循环 比较地点 我就这么
  • 如何在 iOS 应用程序中从蓝牙 LE 设备获取通知

    我正在开发 iOS 蓝牙 LE 应用程序 我能够正确且成功地遵循的功能如下 发现外围设备 连接到外围设备 获取服务和特征 单击读取按钮时能够从特性中读取数据 能够写入数据 在这里我面临一个问题 只有当 BLE 设备将传入数据传输到应用程序时
  • R - 使用 DT 按行格式化

    我有一个数据表 我想在闪亮的应用程序中显示 并按行显示不同的数字格式 我发现用户 NicE 之前提供了一个解决方案 该解决方案在所有列和行都是数字时有效 如下所示 R Shiny DataTables 不按列而是按行格式化数字 https
  • 在相同表名的插入查询中使用选择查询

    是否可以在 插入 查询中使用 选择 查询 但条件是我想对 选择 和 插入 查询使用相同的表名 例如mysql gt insert into sample elements name position ownerel values Names
  • 返回 Oracle 引用游标并附加多个结果

    我有这个问题 希望有人知道答案 我有一个 Oracle 存储过程 它接受客户 ID 并在 ref cursor 中返回所有客户的订单 过于简单化 这就是我所拥有的 Orders orderId siteID Customers siteID
  • 查找 Eclipse 项目中的错误数量

    如何以编程方式查找 Eclipse 项目中的错误数量 以红色标记 主要有两个步骤 您需要访问 Eclipse API 为 Eclipse 编写自己的插件或使用脚本插件 例如时髦的猴子 http groovy codehaus org Gro
  • 在 VIM 中重新打开上次会话缓冲区的替代方案?

    I know mksession 我也用它 但有时 它太多了 它保存了太多状态 这是一个问题 例如 当你更新一些插件 并且想要关闭 打开 VIM 以在新状态下启动它时 除非你只想保留当前打开文件的状态 有时什么 mksession保存与新更
  • 默认的 iPhone 相机应用程序如何能够如此快速地保存照片?

    到目前为止 我已经成功地为 iPhone 创建了一个应用程序 它可以拍摄多张图像 每张图像之间的间隔约为 3 秒 我正在一个单独的线程中异步处理每个图像 一切都很好 直到将图像保存到 iPhone 磁盘上 然后大约需要 12 秒才能使用 J
  • JavaScript 中变量的作用域是什么?

    javascript中变量的作用域是什么 它们在函数内部和外部具有相同的作用域吗 或者说这有什么关系吗 另外 如果全局定义变量 它们存储在哪里 TLDR JavaScript 具有词法 也称为静态 作用域和闭包 这意味着您可以通过查看源代码
  • WMQ Pub/Sub 主题到队列桥

    在其他队列管理器中 可以在队列和主题之间建立桥梁 以便发布者和订阅者不需要知道他们正在使用主题 示例中TIBCO EMS http www tibco com products soa messaging enterprise mesage
  • 如何设置每两周本地通知一次

    如何每两周触发一次本地通知 我所做的是 UILocalNotification localNotification UILocalNotification new localNotification repeatInterval 14 lo
  • 如何查看 Angular 2 应用程序的页面源

    我有网络应用程序 每当我使用浏览器查看页面源查看页面源时 我只能看到页面源中的index html内容 因为我能够看到检查元素中的所有html代码 但不能看到页面中的所有html代码来源 有谁如何查看页面源代码吗 下面是server ts
  • 使用 gopacket 发送 UDP 数据包到 127.0.0.1

    我正在尝试使用 gopacket 将 UDP 数据包发送到 127 0 0 1 这是我的代码 package main import fmt net github com google gopacket github com google
  • 防止 HTML 源代码窃取 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我为一个人做了一些网页设计工作 我继续向他展示了我的开发服务器上他的新网站的链接 向他展示了进展 临近完成时 他断绝了与我的所有联
  • 使用 Java 查找并替换文本文件中的单词

    我正在尝试使用 Java 查找并替换文本文件中的某些单词 我的代码在一定程度上有效 但是我得到的输出是错误的 我需要用用户输入替换文本文件中一行中的多个单词 但是 当我运行代码时 该行会为我尝试替换的每个单词复制一次 例如 如果我想替换以下
  • Java Web 服务向 .net 客户端返回 null 对象

    任何人都可以弄清楚我的问题是 我正在从 Net 客户端调用 Java Web 服务 Axis 1 4 的 webmethod 该方法返回一个 Map 对象 如果我从 Axis 客户端调用它 效果很好 但在我的 C 代码中 它始终为 null
  • 如何在javascript中检查图像是否是损坏的图像

    我从 Twitter 获取个人资料图像并将图像 URL 存储在我的数据库中 某些网址给出了损坏的图像 其中网址以图像扩展名结尾 任何人都可以帮助我检查图像是有效图像还是损坏的图像 如果存在损坏的图像 我需要显示默认图像 var image
  • NSSearchPathForDirectoriesInDomains 和持久数据的问题

    根据建议 我们使用以下代码来检索用户文档的路径 NSArray paths NSSearchPathForDirectoriesInDomains NSDocumentDirectory NSUserDomainMask YES NSStr