4

Xcode で Objective-C Cocoa アプリを作成するときに、ユーザーごと、アプリケーションごとの設定を保存するためのフォルダーへの参照を取得するにはどうすればよいですか?

.NET では、次のEnvironment.SpecialFolder列挙を使用します。

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

ココアに相当するものは何ですか?

4

2 に答える 2

14

Mac OSXでは、アプリケーション設定はNSUserDefaultsを介して自動的に保存され、.plistファイルに保存されます~/Library/Preferences/。このファイルでは何もする必要はありません。NSUserDefaultsがすべてを処理します。

ドキュメントベースではないアプリケーション(AddressBook.appなど)にデータファイルがある場合は、に保存する必要があります~/Library/Application Support/Your App Name/。このフォルダを検索または作成するための組み込みの方法はありません。自分で行う必要があります。これが私自身のアプリケーションの例です。Xcodeプロジェクトテンプレートのいくつかを見ると、同様の方法がわかります。

+ (NSString *)applicationSupportFolder;
{
    // Find this application's Application Support Folder, creating it if 
    // needed.

    NSString *appName, *supportPath = nil;
    NSArray *paths = NSSearchPathForDirectoriesInDomains( NSApplicationSupportDirectory, NSUserDomainMask, YES );

    if ( [paths count] > 0)
    {
        appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleExecutable"];
        supportPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:appName];

        if ( ![[NSFileManager defaultManager] fileExistsAtPath:supportPath] )
            if ( ![[NSFileManager defaultManager] createDirectoryAtPath:supportPath attributes:nil] )
                supportPath = nil;
    }

    return supportPath;
}

アプリが人気のある場合は、同じアカウントを共有するさまざまなユーザーの複数のライブラリファイルを使用できるようにするリクエストが表示される可能性があることに注意してください。これをサポートしたい場合は、アプリケーションの起動時にalt/optionキーを押したまま使用するパスの入力を求めるのが慣例です。

于 2008-12-11T15:55:51.020 に答える
0

ほとんどのものについては、ディスク上の永続的な設定を処理する NSUserDefaults API を使用する必要があります。

于 2008-12-11T18:03:38.487 に答える