0

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

4

1 回答 1

2

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

(如果你想做类似的事情[foo writeToFile:@"output.aiff" …],你就是。)

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

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

无论哪种方式,CWD 都是放置东西的错误位置。

您可能应该运行一个保存面板,然后将完成处理程序中的文件写入保存面板为您提供的 URL

如果您想将文件存储在某个常量目录中,请向 NSFileManager 询问用户域(~/Library/Caches)中的Caches 文件夹,然后告诉它在该文件夹中创建一个文件夹,其名称为您的 main bundle's ,然后写入该目录中的文件。bundleIdentifier

于 2013-04-09T02:41:44.813 回答