0

好的,我的问题很直截了当,但我绝对找不到一个直截了当的答案。所以,如果你能提供帮助,我会很高兴。

我想要的是 :

我的应用程序可以自由写入一些数据的地方(在 10.6 上 - 没有沙箱 - 或 10.7 及更高版本,有沙箱)。

简单来说 :

  • 我想知道是否有任何系统函数(例如NSHomeDirectory())指向我可以写入的安全位置(OS X 版本无关紧要)。
4

1 回答 1

0

好的,所以我在这里,回答我自己的问题。

那么,如果我们只需要访问Application Support目录(如果它不存在则创建它),不管我们是在 10.6(未启用沙盒)还是 10.7+ 上怎么办?

这是通用解决方案(我自己为此写了一个类别NSFileManager,但即使是简单的函数或宏也可以......)

界面 :

// NSFileManager+Paths.h

#import <Foundation/Foundation.h>

@interface NSFileManager (Paths)

+ (NSString*)applicationSupportDirectory;

@end

执行 :

// NSFileManager+Paths.m

#import "NSFileManager+Paths.h"

@implementation NSFileManager (Paths)

+ (NSString*)applicationSupportDirectory
{
    NSError *error;
    return [[[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&error] path];
}

@end

比较简单吧?


提示:请查看下面的 2 条评论,以修复此答案以获得更优雅的解决方案。

于 2013-02-12T02:26:02.873 回答