在加载/保存期间从 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 以与我的项目一起使用的主要内容,如果未能解决你的问题,请参考以下文章
UserDefaults - 使用 Xcode Simulator 时保存不一致
Xcode 5 iOS 7 Simulator 没有加载 Storyboard 让我抓狂! (没有本地化)