我的应用程序附带一个资源文件夹和捆绑包中的JSON。在第一次安装时,它将获取资产和JSON,将其映射到核心数据,并在完成时删除文件夹。
这看起来像预期的那样工作,通过iOS模拟器查看查找器中的应用程序包,我看到文件夹正在删除,应用程序的内存占用空间也在减小。
但是,当在设备上运行此功能时,删除文件夹后,设置中的使用率不会减少。有人知道为什么会发生这种情况吗?
谢谢您抽时间见我。
发布于 2015-03-20 22:19:39
该模拟器是一个Mac OS应用程序。应用程序包在Mac OS上是可读/写的,所以它可以工作。
但是,iOS上的应用程序包是只读的。在实际的iOS设备上,对removeItemAtPath的调用将失败。
模拟器有各种各样的缺陷。这就是其中之一。另一个文件系统的问题是,在大多数Mac上,文件名忽略大小写。(我之所以说“大多数Mac”,是因为您可以通过不同的方式配置Mac文件系统,其中一些是区分大小写的,而另一些则不是。Mac OS卷的默认文件系统不区分大小写。)然而,在iOS上,文件名总是区分大小写的。因此,如果你写的代码命名一个文件,但大小写不匹配,它可以在sim上工作(在大多数Mac上),但在设备上失败。
在其他情况下,模拟器实际上使用Mac OS版本的OS框架来实现不同的API,并且在行为上存在微妙和不那么微妙的差异。过去,您可以使用NSURLDownload ( Mac唯一的类)编写代码,然后它将在sim上编译和运行,但在为实际的iOS设备编译时,您会得到一个未定义的符号错误。我不知道这是不是真的。
这里的教训是尽早并经常在实际的目标设备上进行测试。
编辑:
另一点:修改你的应用程序包是非常糟糕的做法,即使在Mac OS上也是如此。
https://stackoverflow.com/questions/29168579
复制相似问题