2011-07-14 22 views
3

我提交申请到Mac App Store和苹果通过这引起了否决方面的原因NSTemporaryDirectory()是否违反了Mac App Store指南?

应用不与Mac OS X文件系统的文件符合将 拒绝

在指南建议写入文件以下目录

  • 〜/库/ Application Support/{应用标识符}
  • 〜/库/ {应用标识符}
  • 〜/图书馆/缓存/ {应用标识符}

,但我的文件是暂时的,缓存文件,那么就可以写我的文件到NSTemporaryDirectory()它会违反准则?

回答

7

NSTemporaryDirectory()是适当的临时文件。

~/Library/Application Support/{app-identifier}

此目录是由您的应用程序在运行时产生的永久文件。

~/Library/{app-identifier}

这个目录是所有由您创建的应用程序的大多数文件一个陷阱。您拥有此目录的所有权。

~/Library/Caches/{app-identifier}

此目录是您的应用可以重新创建临时文件,但它要在磁盘上保存尽可能长的时间。这里的文件可能被操作系统删除。

+0

如使用'NSTemporaryDirectory()的一些评论阅读'是风险在某些情况下,返回'nil'。那么我使用'〜/ Library/Caches/{app-identifier}',而不是在OSX中存储缓存文件的好方法。谢谢 – meddlesome

+3

无论如何,您应该使用'NSSearchPathForDirectoriesInDomains()'的结果,而不是对这些路径进行硬编码。 :) –

2

我写了一个简单的库使用了正确的系统函数返回所有这些路径,并与逻辑,如果他们不存在自动创建它们(如与〜/应用程序支持/ AppName的,等的情况下)。

https://github.com/nicklockwood/StandardPaths