在加载/保存期间从 Simulator 目录中提取 plist 以与我的项目一起使用

Posted

技术标签:

【中文标题】在加载/保存期间从 Simulator 目录中提取 plist 以与我的项目一起使用【英文标题】:Extract plist from Simulator directory to use with my project during loads/saves 【发布时间】:2012-02-24 20:35:58 【问题描述】:

我正在使用 plist 将书签存储为简单的字符串数组。

我可以毫无问题地从我的项目目录加载一个 plist,但是当我对 plist 进行更改时,它不会显示在我的项目目录中的文件上。相反,对 plist 的更改保存在模拟器使用的临时目录中。

有没有办法告诉 xcode 使用项目目录中的 plist?

当我再次运行应用程序时,我对此 plist 文件的保存更改看不到,因为它从项目目录加载数据,然后再次将其保存到临时模拟器文件夹。

【问题讨论】:

听起来您正在从包中加载文件,然后将其保存到文档目录。它保存到的临时目录是什么? 是的,我从 NSBundle mainBundle 加载,我想我不应该那样做,应该吗? 【参考方案1】:

据我了解,应用程序应该更改 plist 的内容。如果是这种情况,则不应从项目目录加载文件。应用发布后,这些文件不得更改。

相反,您应该加载 plist 文件并将其保存在应用程序包的 Documents/ 目录中。这样,如果您愿意,它也会与 iCloud 同步。

因此,请执行类似... 如果 Documents/ 目录中没有文件,请将其从捆绑包中复制到 Documents/ (假设其中有一些默认值)。如果有文件,请从 Documents/ 加载并使用它。

【讨论】:

您认为将数组隐藏在设置包中同样容易吗? uhhmm 我认为你可以这样做,但这不是真正的标准,你知道吗? settings.app 使用设置包来配置您的应用程序,您不应将其用于书签等用户数据。请记住,无论如何您都不能“隐藏”东西,如果用户越狱了他的手机,无论如何他都可以访问该文件(但是我不明白为什么要直接查看该文件)

以上是关于在加载/保存期间从 Simulator 目录中提取 plist 以与我的项目一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode Device Simulator的文档目录路径

UserDefaults - 使用 Xcode Simulator 时保存不一致

iOS UI 自动化:在测试执行期间从测试中切换网络设置

Xcode 5 iOS 7 Simulator 没有加载 Storyboard 让我抓狂! (没有本地化)

Xcode 12 Beta 2 - 无法为目标“arm64-apple-ios14.0-simulator”加载标准库

Apple Watch Simulator 完全无法启动或加载应用程序并显示“等待附加”消息