-(void)addtoUserdefault: (int)goodnum :(int) goodid{
NSUserDefaults *userSet=[NSUserDefaults standardUserDefaults];
NSDictionary *receiveDictionary = [userSet objectForKey:@"goodsDictionary"];此处获得的为NSDictionary,不能添加数据了
if (receiveDictionary==nil) {
NSLog(@"buhao");
receiveDictionary = [[NSMutableDictionary alloc]init];
}
goodsDictionary = [[NSMutableDictionary alloc]initWithDictionary:receiveDictionary];
[goodsDictionary setValue:[NSString stringWithFormat:@"%i",goodnum] forKey:[NSString stringWithFormat:@"%i",goodid]];
[userSet setObject:goodsDictionary forKey:@"goodsDictionary"];
}
NSUserDefaults偶尔不工作,无法保存改动的数据的原因是,NSUserDefaults的机制是,过一段时间,会自动调用自己的函数synchronize去同步数据的。
而如果你是遇到和我此处类似的,改动数据后,就退出程序了,即在NSUserDefaults还没来得及synchronize之前就退出程序,就需要手动调用synchronize去保存数据了。
即,在需要的时候,手动调用NSUserDefaults去执行同步synchronize的动作,以及时保存(修改了的)数据。