gpt4 book ai didi

ios - 将 NSMutableDictionary 保存到 NSUserDefaults

转载 作者:行者123 更新时间:2023-12-01 19:03:52 24 4
gpt4 key购买 nike

在我的应用程序中,我要保存的一件事是一组开关的值。这个想法是将每个开关的状态保存在 NSMutableDictionary 中。在另一种方法中,我读出每个开关的值(“状态”)并使用它来执行简单的计算。这些开关基本上告诉我用户拥有什么。

在我的数据模型中。

-(void)savePlates:(NSMutableDictionary *)settingPlates {
[self setObject:settingPlates forKey:@"plates"];
[self synchronize];
}

-(NSMutableArray *)loadPlates {
NSMutableArray *plates = [[self dictionaryForKey:@"plates"] mutableCopy];
return plates;
}

在 View Controller 中使用它的示例。其中“设置”是定义上述方法的类的一个实例。
-(IBAction)switch55:(id)sender {
if (self.switch55.on) {
[self.plateSelectionDict setObject:@YES forKey:@55];
} else {
[self.plateSelectionDict setObject:@NO forKey:@55];
}

[settings savePlates:self.plateSelectionDict];

if (DEBUG) {
NSLog(@"%@", self.plateSelectionDict);
}
}

我在这条线上崩溃了。
[self setObject:settingPlates forKey:@"plates"];

错误是,
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'*** -[Settings setObject:forKey:]: attempt to insert non-property list object {
55 = 0;
25 = 1;
"0.25" = 1;
"0.5" = 1;
"0.75" = 1;
45 = 1;
15 = 0;
1 = 1;
10 = 1;
"2.5" = 1;
35 = 1;
5 = 1;
} for key plates'

令人困惑的是,它吐出了正确的值,但仍然抛出异常。我一定是做错了什么。任何援助将不胜感激。

最佳答案

如果您需要将其保存到 NSUserDefaults 或 plist,则所有键都必须是字符串。你的 key 是数字。

关于ios - 将 NSMutableDictionary 保存到 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com