0

NSDictionary を NSUSerDefaults に保存しようとしましたが、次のエラーが発生しました: プロパティ以外の値を挿入しようとしました

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

 if(defaults) {
     [defaults setBool: YES forKey: @"disableGetStarted"];
     [defaults setObject: [json mutableCopy]  forKey: @"user"];
     [defaults synchronize];

     NSLog(@"defaults %@", [defaults objectForKey: @"user"]);
 }

json は NSDictionary です。

私に何ができる?

4

4 に答える 4

2

jsonディクショナリの場合もありますが、ディクショナリのすべてのコンテンツは、ユーザーの既定値に格納される正当な値である必要があります。すべて、、、、、、、またはのインスタンスNSDataNSStringある必要があります。NSNumberNSDateNSArrayNSDictionary

于 2013-08-22T14:47:58.940 に答える
-1
NSDictionary *dict = [[NSDictionary  alloc] init];

dict = json;

[NSUserDefaults standardDefaults] setObject:dict forKey:@"user"];

NSUserDefaults は可変オブジェクトと不変オブジェクトを区別しないため、元に戻すと不変になります。たまたま変更可能な辞書を作成した場合 ->

[[NSUserDefaults standardDefaults] setObject:dict forKey:@"user"] mutableCopy];

ディクショナリのすべてのオブジェクトは、jsonNSData、NSString、NSNumber、NSDate、NSArray、または NSDictionary のインスタンスである必要があります。

于 2013-08-23T06:37:59.107 に答える