为沙盒化的Cocoa应用创建临时文件

10

我的应用程序是 沙盒化 的(根据最新的App Store指南),我想创建一些临时文件。

我能够这样做吗?如果“是”,我在哪里可以这样做?是否有预先指定的路径?(以及访问该路径的命令?)

注:sandboxed表示将应用程序隔离在一个安全的环境中,防止其访问系统或其他应用程序的资源。

请将您的解决方案发表为答案,而不是添加到问题正文中。 - jscs
2个回答

15
您应该使用NSTemporaryDirectory()函数,它将查找并返回适用于您的应用程序的临时文件夹(无论沙盒状态、操作系统版本和其他许多因素如何)。请查看Cocoa With Love这篇文章,以获取有关NSTemporaryDirectory()和其他临时目录相关详细信息。

5

关于临时目录的问题,NSHipster上有一篇不错的文章:

http://nshipster.com/nstemporarydirectory/

作者建议使用以下代码,该代码在沙盒应用程序中也可以完美运行:

NSError *error;
NSString *globallyUniqueString = [[NSProcessInfo processInfo] globallyUniqueString];
NSString *tempDirectoryPath = [NSTemporaryDirectory() stringByAppendingPathComponent:globallyUniqueString];
NSURL *tempDirectoryURL = [NSURL fileURLWithPath:tempDirectoryPath isDirectory:YES];
[[NSFileManager defaultManager] createDirectoryAtURL:tempDirectoryURL withIntermediateDirectories:YES attributes:nil error:&error];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接