Objective-C:无法从NSUserDefaults设置NSMutableDictionary
问题描述:
我试图检索保存到NSUserDefaults的NSDictionary。当我登录了什么,我试图检索,它会显示正确:Objective-C:无法从NSUserDefaults设置NSMutableDictionary
NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"userdetails"] mutableCopy]);
然而,当我试图给一个变量,它返回的零。
NSMutableDictionary *test123 = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"userdetails"] mutableCopy];
任何想法为什么?
答
请与我工作的代码,
保存这个样子,
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:yourMutableDictionary];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"currentUser"];
[[NSUserDefaults standardUserDefaults]synchronize];
获取字典,
NSData *dictionaryData = [[NSUserDefaults standardUserDefaults] objectForKey:@"currentUser"];
NSDictionary *tempDict = [NSKeyedUnarchiver unarchiveObjectWithData:dictionaryData];
答
也许你可以尝试使用下面的代码: [[NSUserDefaults standardUserDefaults] setObject:(NSDictionary *)yourDictionary forKey:yourkey];
“它返回为零”是什么意思? –
这两行是在你的代码中紧跟在另一个之后还是在两个不同的地方? – rmaddy
test123 = nil'NSMutableDictionary * test123 = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@“userdetails”] mutableCopy];' –