Objective-C:无法从NSUserDefaults设置NSMutableDictionary

问题描述:

我试图检索保存到NSUserDefaults的NSDictionary。当我登录了什么,我试图检索,它会显示正确:Objective-C:无法从NSUserDefaults设置NSMutableDictionary

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"userdetails"] mutableCopy]); 

然而,当我试图给一个变量,它返回的零。

NSMutableDictionary *test123 = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"userdetails"] mutableCopy]; 

任何想法为什么?

+0

“它返回为零”是什么意思? –

+0

这两行是在你的代码中紧跟在另一个之后还是在两个不同的地方? – rmaddy

+0

test123 = nil'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];