2012-04-16 92 views
0

我正在开发一个Cocoa应用程序,它需要10.7+。所以,我会很乐意使用新的闪亮的API。在Cocoa中存储下载的文件

我想要做的是从我们的后端服务器下载一些MP3和可能的一些XML数据,并将其存储在用户的Mac上。我非常想将存储在“application.app”目录中,以及与应用程序捆绑在一起的初始资源。

我可以这样做吗?将文件存储在application.app中?

如果不是,那么存储附加数据的首选目录在哪里?

注意:它必须支持苹果的新沙箱thingie。


(这是一个好主意:reference

// save our buddy list to the user's home directory/Library/Preferences. 
    [prefs writeToFile:[@"~/Library/Preferences/MiniMessage Client.plist" 
        stringByExpandingTildeInPath] atomically: TRUE]; 
+0

如果我没有错,我认为沙箱模式不允许你下载任何扩展程序使用的文件。 – TheAmateurProgrammer 2012-04-16 05:58:29

+0

你部分正确。但是,通过添加适当的权利,您可以从互联网上检索数据。 (另外,如果所有的应用程序都将受到限制,不妨将appStore烧掉。) – Mazyod 2012-04-16 06:21:00

+0

为什么不使用应用程序支持目录? – Costique 2012-04-16 06:28:56

回答

1

这里是苹果公司的App Sandbox Design Guide并宣读了 “容器目录和文件系统访问”。目录“〜/ Library/Container/com.yourcompany.yourappname /”及其子目录将仅限于您的应用程序,因此在我看来,该目录将是您保存从网络下载的内容的最佳位置。

+0

在发布这个问题之前,我翻了一遍,但是我好像错过了关于容器目录的部分..但是,我想制定这个计划B.计划A将它存储在application.app中(使其成为超级便携式)。 – Mazyod 2012-04-16 07:00:13

+0

TBH在阅读详细信息后,我将授予此答案为Plan S,取代计划A.这是应用程序应如何正确存储其数据! – Mazyod 2012-04-16 07:05:28