我有一个 NSMutableDictionary,并且我已经向它添加了值(几个 key 对值)。现在我需要将此 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
不区分可变对象和不可变对象(immutable对象),因此当您取回它时,它将是不可变的:
NSDictionary *retrievedDictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"DicKey"];
如果你想要一个可变字典,只需使用 mutableCopy
:
NSMutableDictionary *mutableRetrievedDictionary = [[[NSUserDefaults standardUserDefaults] objectForKey:@"DicKey"] mutableCopy];
https://stackoverflow.com/questions/9947073/
相关文章:
objective-c - 对 block 进行类型定义是如何工作的
objective-c - Xcode:可以为协议(protocol)接口(interface)所需
iphone - 我的 iPhone Objective-C 代码如何在 UIWebView 中收到
ios - 如何在 iPhone 上显示来自 API 的 HTML 文本?
ios - 使用 Xcode 进行模拟时,PerformFetchWithCompletionHan
objective-c - 实现 -hash/-isEqual :/-isEqualTo. ..:用