我想保存NSDictionary
与数组值但我有一些奇怪的麻烦。iOS NSDictionary保存到NSUserDefaults不保存值
我NSDictionary
有NSStrings
为keys
每个value
是NSNumbers
一个NSArray
。当我打印字典时,一切都很好。我把这本字典写到NSUserDefaults
,如果我马上读出来,一切都很好。使用这一切接缝就好:
[[NSUserDefaults standardUserDefaults] setObject:self.selectedOptionPositions
forKey:PREF_OPTIONS_KEY];
[[NSUserDefaults standardUserDefaults] synchronize];
//THIS PRINT EVERYTHING OUT EXACTLY AS IT SHOULD!
NSLog(@"read after write: %@", [[NSUserDefaults standardUserDefaults]
objectForKey:PREF_OPTIONS_KEY]);
问题出现时,我创建了类的新的实例来处理这个。当我把这个类的一个新实例,并在init方法检查NSDictionary
像这样:
NSLog(@"read initial: %@", [[NSUserDefaults standardUserDefaults]
objectForKey:PREF_OPTIONS_KEY]);
当我打印记录时,NSDictionary
包含所有键的,但所有的values
现在都空!所有新添加的keys
在重新创建课程后都存在,但不存在values
。
这里有什么问题?控制台中没有警告或错误。
尝试使用[self.selectedOptionPositions copy]保存到NSUserDefaults。 – ZeMoon