【发布时间】:2012-03-30 16:40:13
【问题描述】:
我有一个 NSMutableDictionary,并且我已经向它添加了值(几个密钥对值)。现在我需要将此 NSMutableDictionary 保存到 NSUserDefaults 对象。
1.) 我的代码如下;我不确定它是否正确,而且我还需要知道如何从 NSUSerDefault 中检索 NSMutableDictionary?
2.) 检索 NSMutableDictionary 后,我需要将其保存到 NSDictionary。我怎么能做到这些?
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic addObject:@"sss" forKey:@"hi"];
[dic addObject:@"eee" forKey:@"hr"];
[NSUserDefaults standardDefaults] setObject:dic forKey:@"DicKey"];
[[NSUserDefaults standardDefaults] synchronize];
【问题讨论】:
-
您还需要拨打
[[NSUserDefaults standardDefaults] synchronize];进行保存。你到底在挣扎什么?您已经提到了您想要做的事情,但没有提到您遇到问题的地方。您在上面包含的代码(除了缺少的[)看起来不错。 -
我需要保存一些键值对并从不同的视图访问它。所以我想为此使用 NSUserDefaults 以及 NSDictionary。最后,我将不得不用这些值填充一个表。
-
除非您添加更多细节,否则我怀疑您会得到更多答案。你设置的很好。你打电话
[[[NSUserDefaults standardDefaults] objectForKey:@"DicKey"]时没有找到字典吗?请注意,这将是NSDictionary*类型,而不是NSMutableDictionary*。如果您想跨视图操作数据,请考虑将数据存储在您传递给两个视图的数据模型中(或根据您希望数据的通用/可见程度在其上提供单例访问器)。 -
不建议保存为用户默认值以便从另一个视图访问它。您可以作为参数发送,也可以使用单例
标签: iphone objective-c ios cocoa-touch