1

次のタスクを実行しようとしています

[[NSUserDefaults standardUserDefaults] setObject:@"Dry" forKey:@"vesselType_preference"];
[[NSUserDefaults standardUserDefaults] synchronize];

私の「vesselType_preference」は多値属性ですが、影響を受けていません。これは他のタイプの属性では機能しますが、複数値タイプでは機能しません。

ありがとう

4

2 に答える 2

1
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];        
    if (![defaults objectForKey:@"vesselType_preference"])
    {
        [defaults setObject:@"Dry" forKey:@"vesselType_preference"];
    }
    [[NSUserDefaults standardUserDefaults] synchronize];

これはうまくいくはずです。

于 2012-03-12T12:34:41.300 に答える
0

NSUserDefaults は、NSDictionary、NSData、NSArray、NSString、および BOOL のオブジェクトのみを処理できます。(そこに別のものがあるかもしれませんが、確かではありません)配列や辞書のような複数の値のオブジェクトを保存する必要がある場合は、最初に設定をそこに保存してから、それをデフォルトに保存します。

あなたのコードは、ユーザーのデフォルトに情報を保存するのに問題ないようです。保存する前に、オブジェクト タイプが指定されていることを確認してください。(id) は動作しません... または正しく動作しません。

于 2012-03-12T12:47:39.823 に答える