Xcode,更改应用程序子文件夹?
Posted
技术标签:
【中文标题】Xcode,更改应用程序子文件夹?【英文标题】:Xcode, changing applications subfolder? 【发布时间】:2010-03-17 18:25:58 【问题描述】:您好,今天在编写一个简单的 iPhone 应用程序时注意到 Xcode 有时会在应用程序中启动一个新文件夹,而您仍在使用同一个应用程序。
/Users/Fuzzygoat/Library/Application Support/iPhone Simulator/User/Applications/4E5EF4F0-F410-46A6-888C-0D23BB97D2DC
有谁知道是什么导致 Xcode 切换到新的应用程序文件夹(即名为“4E5EF4F0-F410-46A6-888C-0D23BB97D2DC”的文件夹)
EDIT_001:我注意到的一件事是,我已经做了很多退出应用程序并重新启动以检查一组存档方法的操作,这有时会让人感到困惑。有几次它没有找到保存的数据,我想这只是通过 Xcode 反复运行模拟器的副作用。如果我在没有 Xcode 的模拟器上进行测试,一切似乎都很好,首先文件夹保持相同的名称。
注意:我每次都使用 NSSearchPathForDirectoriesInDomains 来获取文档文件夹。
加里
【问题讨论】:
【参考方案1】:出于安全原因,iPhone OS 将应用程序(包括其首选项和数据)限制在文件系统中的唯一位置。此限制是称为应用程序“沙盒”的安全功能的一部分。沙盒是一组细粒度的控件,限制应用程序对文件、首选项、网络资源、硬件等的访问。在 iPhone OS 中,应用程序及其数据位于其他应用程序无法访问的安全位置。安装应用程序时,系统会为该应用程序计算一个唯一的不透明标识符。使用根应用程序目录和此标识符,系统构建应用程序主目录的路径。因此,应用程序的主目录可以描述为具有以下结构:
/ApplicationRoot/ApplicationID/
在安装过程中,系统会创建应用程序的主目录和几个关键子目录,配置应用程序沙箱,并将应用程序包复制到主目录。为每个应用程序及其数据使用唯一位置可简化备份和恢复操作、应用程序更新和卸载。有关为每个应用程序创建的特定于应用程序的目录以及有关应用程序更新和备份和恢复操作的更多信息。
见The Application Sandbox
【讨论】:
【参考方案2】:我知道当您重新启动模拟器时会发生这种情况。至少,那是我确实观察到它的时候。
开发人员文档告诉您,路径可以在没有警告的情况下更改,并且永远不要依赖它。这是 iPhone 安全系统的一部分,可防止恶意应用程序使用硬编码路径来查找和利用系统资源。
【讨论】:
谢谢,我正在使用 NSSearchPathForDirectoriesInDomains,我只是好奇为什么我有多个文件夹用于同一个应用程序并具有各种不同的时间戳以上是关于Xcode,更改应用程序子文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
Xcode XIB:如何实现 ScrollView 或 PageControl 来滑动子视图?