2015-06-09 3 views
0

Когда я сохраняю данные с помощью NSUserDefault, он в первый раз сохраняет данные успешно. Когда я закрываю приложение и запускаю его снова, я получаю старые данные, но снова я использую 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]; 

    } 

читать данные:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    arrayOfImages = [userDefaults objectForKey:@"mydata"]; 
+0

сохранять данные и читать данные как на разных страницах. – Nirav

+1

@Nirav. Сначала получите доступ к массиву NSUserDefault. Затем добавьте новые данные в этот массив (называемый новым массивом). Теперь сохраните свой массив данных в NSUserDefault.Это очень простой сценарий. –

ответ

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]; 
+0

благодарит брата за ваше предложение. I получить значение update в temparray1, но я не могу получить значение обновления в моих прочитанных данных. это показывает только старую ценность. – Nirav

1

Это не очень хорошая практика для хранения больших объемов данных, установленных в NSUserDefaults.

NSUserDefaults только для хранения небольших объемов данных, таких как приложения предпочтений, настройки предпочтений и т.д.

Использование основных данных, для обработки ваших сценариев.

Смежные вопросы