我得到字典的零值。 我相信这里有一些我找不到的蠢事。 第一次用户默认是nil,也许这就是问题?
NSDate *date=[NSDate date];
//read
NSMutableDictionary *dic=[[NSMutableDictionary alloc] init];
dic=[[NSUserDefaults standardUserDefaults] objectForKey:@"list"];
[dic setObject:dataToSave forKey:date];
NSLog(@"%@",dic);//show nil where "dataToSave" is not nil.
答案 0 :(得分:1)
您正在使用新词典初始化dic
var,然后使用NSUserDefaults
条目重新初始化它,我猜这是零。
NSDate *date=[NSDate date];
//read
NSMutableDictionary *dic = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"list"].mutableCopy;
if(!dic)
{
dic = [[NSMutableDictionary alloc] init];
}
[dic setObject:dataToSave forKey:date];
// if you want to save back to NSUserDefaults, you will need to do this
[[NSUserDefaults standardUserDefaults] setObject:dic forKey:@"list"];
修改强>
正如rmaddy指出的那样,这不起作用,因为你不能在保存到NSStrings
的词典中使用非NSUserDefaults
作为键。
为了使其正常工作,date
var需要用字符串替换。
<强> EDIT2 强>
修改后的答案允许NSMutableDictionary