当我第一次使用NSUserDefault保存数据时,它成功保存数据。当我关闭我的应用程序并重新开始然后我得到旧数据但我再次使用NSUserDefault和相同的密钥。结果是新数据出现但我的旧数据没有来了。我想要新旧数据。那么这个解决方案是什么?
存储数据
NSUserDefaults *userDefaults ;
if(![[NSUserDefaults standardUserDefaults] objectForKey:@"mydata"])
{
userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:app.arr_defult forKey:@"mydata"];
[userDefaults synchronize];
}
else
{
NSLog(@"Leaderboards Dict Exists %@", [NSUserDefaults standardUserDefaults]);
userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:app.arr_defult forKey:@"mydata"];
[userDefaults synchronize];
}
阅读DATA:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
arrayOfImages = [userDefaults objectForKey:@"mydata"];
答案 0 :(得分:1)
在NSUserDefaults中存储大量数据集并不是一个好习惯。
NSUserDefaults仅用于存储少量数据,例如应用偏好, 设置偏好等。
使用核心数据来处理您的方案。
答案 1 :(得分:0)
Everything is fine .just you add new data with same key first you get old data from nsuserdefault and add you both data(old and new) in nsuserdefault.i think is work fine..
// First Time
NSUserDefaults *userDefaults ;
userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:app.arr_defult forKey:@"mydata"];
[userDefaults synchronize];
// second Time
NSMutableArray *temparray1=[[NSMutableArray alloc] init];
[temparray1 addObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"mydata"]];
[temparray1 addObject:app.arr_defult];
[userDefaults setObject:temparray1t forKey:@"mydata"];
[userDefaults synchronize];