Objective c Cocoa应用程序中的数据存储位置?

Objective c Cocoa应用程序中的数据存储位置?,objective-c,cocoa,macos,Objective C,Cocoa,Macos,我希望将我的一个windows应用程序迁移到mac 正如我们所知,在vista/win7上,有一些公共数据目录,一个应用程序可以在没有RAC权限的情况下添加、保存和删除数据文件 Mac/Cocoa上有相同的目录吗 或 我可以将数据存储到任何目录,而无需任何问题和权限 欢迎任何评论默认情况下,除非启用沙盒,否则您可以写入用户有权访问的任何目录。不过,一般来说,Cocoa应用程序将数据存储在用户的主目录中的~/Library/Application Support/以下是您可以写入的3个应用程序:

我希望将我的一个windows应用程序迁移到mac

正如我们所知,在vista/win7上,有一些公共数据目录,一个应用程序可以在没有RAC权限的情况下添加、保存和删除数据文件

Mac/Cocoa上有相同的目录吗

我可以将数据存储到任何目录,而无需任何问题和权限


欢迎任何评论

默认情况下,除非启用沙盒,否则您可以写入用户有权访问的任何目录。不过,一般来说,Cocoa应用程序将数据存储在用户的主目录中的
~/Library/Application Support/

以下是您可以写入的3个应用程序:

~/Library/Application Support/app identifier

~/Library/app标识符

~/Library/Caches/app identifier

(用您的应用标识符替换应用标识符)


更多信息请参见“Mac App Store的文件系统使用要求”

确保您没有硬编码您确实使用的路径,请使用API找到它们。例如,这将返回一个包含应用程序支持文件夹路径的数组:
NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory,NSUserDomainMask,YES)
此外,NSFileManager还有一个等价的方法返回一个NSURL对象(越来越成为现代文件系统访问的前进方向)。它还取消了没有人真正使用的数组,所以它稍微容易一些。如果你为Mac开发,你应该阅读。它还提到了这一点。+1因为我无法忍受将其存储在documents目录中的应用程序(如Microsoft Office和Autodesk Maya)。HIG特别提到documents文件夹仅用于用户创建的文件。应用程序隐式创建的任何文件(包括但不限于“shoebox”[iPhoto/iTunes style]应用程序的数据库)都应该放在库中的某个地方。HIG在这方面和许多其他主题上提供了更具体的指导。