OK、私の質問は単純明快ですが、明快な答えが 1 つも見つからないことは間違いありません。それでは、お役に立てれば幸いです。
私が欲しいもの:
アプリがデータを自由に書き込むことができる場所 (10.6 - サンドボックスなし - または 10.7 以降、サンドボックスあり)。
一言で言えば:
NSHomeDirectory()
書き込み先として安全な場所を指すシステム関数 (例: ) があるかどうかを知りたいです(OS X のバージョンは関係ありません)。
OK、ここで私は自分の質問に答えています。
では、 10.6 (サンドボックスが有効になっていない) か 10.7+ かに関係なく、 Application Supportディレクトリへのアクセスのみが必要な場合(存在しない場合は作成する必要がある場合) はどうでしょうか?
これが普遍的な解決策です(私自身がその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 つのコメントをご覧ください。