在归档的应用程序中写入派生数据

时间:2013-04-09 00:17:43

标签: macos cocoa

我在我的应用程序中生成了一个.aiff文件,它位于我的派生数据文件夹中,位于/ Library深处。当我在Xcode中运行应用程序时,一切正常。但是当我将其归档时,程序在尝试写入时崩溃。我该如何解决这个问题?我是否需要学习使用核心数据或是否有一个简单的解决方法?

1 个答案:

答案 0 :(得分:2)

您是否正在尝试写入当前的工作目录?

(如果您尝试执行[foo writeToFile:@"output.aiff" …]之类的操作,那么就是。)

当您在Xcode中运行时,CWD是DerivedData中的构建产品目录,其中创建了应用程序的包。

当您在Xcode之外运行时,CWD是启动磁盘的根,您通常不具有写访问权限,并且在没有明确命令和用户许可的情况下永远不应该触摸(通过打开面板或类似工具) )。

无论哪种方式,CWD都是放错误的地方。

您可能应该run a Save panel,然后将完成处理程序中的文件写入the URL the Save panel has for you

如果要将文件存储在某个常量目录中,ask an NSFileManager for Caches folder中的the user domain(〜/ Library / Caches),则告诉它在该文件夹中创建一个文件夹其名称是您的主要包bundleIdentifier,然后将该文件写入该目录。