小编Hes*_*elM的帖子

NSDictionary中只有属性列表对象(NSNumber),但不能在UserDefaults中存储dict

我有一个NSDictionary与NSNumbers作为值和键.这些数字代表应用程序中的某些设置,我想将字典存储在UserDefaults中.由于NSNumbers是属性列表对象,我认为这应该工作,但我检索以下错误:

*** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '{ 2 = 1; }' of class '__NSDictionaryM'. Note that dictionaries and arrays in property lists must also contain only property values.

我使用的(简化)测试代码是:

NSNumber *one = [NSNumber numberWithInt:1];
NSNumber *two = [NSNumber numberWithInt:2];
NSDictionary *defaultSetting = [[NSDictionary alloc] initWithObjectsAndKeys: one, two, nil];
[[NSUserDefaults standardUserDefaults] setObject:defaultSetting forKey:@"settings"];
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我不明白它有什么问题吗?

谢谢你的时间和回复.

nsdictionary nsuserdefaults nsnumber

3
推荐指数
1
解决办法
1363
查看次数

标签 统计

nsdictionary ×1

nsnumber ×1

nsuserdefaults ×1