Как сохранить мои данные в массиве iphone SDK - PullRequest
1 голос
/ 29 сентября 2011

Я пытаюсь создать приложение, и в этом я получаю некоторое содержимое из сети и загружаю в него и массив, если я закрою и снова запустить приложение, я теряю данные.Как я могу хранить данные в самом приложении.Должен ли я использовать какую-то базу данных?Если да, то какой и как я могу это реализовать?Мне нужно хранить только некоторые строковые переменные.

РЕДАКТИРОВАТЬ: Мое приложение основано на вкладках и имеет две вкладки.Загрузка массивов в одной вкладке и загрузка этого массива в таблицу в другом VC.как только я загружаю массив и перехожу на вторую вкладку, таблица загружается с массивом.Если я вернусь и добавлю еще несколько значений, а затем, если я проверю, добавленные данные не отображаются в таблице.А также, когда я закрываю приложение, таблица теряет все значения, мне нужно сохранить значения в таблице, даже после того, как я выйду из приложения.Как я могу это сделать?вот мой код: в viewdidload:

 NSUserDefaults *simplePlistDb = [NSUserDefaults standardUserDefaults];
        [simplePlistDb setBool:YES forKey:@"isItWorking"];
        [simplePlistDb setObject:alertList forKey:@"myArray"];
        [simplePlistDb synchronize];

в cellforrowatindexpath: -

NSUserDefaults *simplePlistDb = [NSUserDefaults standardUserDefaults];
    BOOL flag = [simplePlistDb boolForKey:@"isItWorking"];
    if (flag)
    {
        NSArray *myArray = [simplePlistDb objectForKey:@"myArray"];
        for (NSString *str in myArray){
            NSLog(@"Str:%@", str);
            [loadArray addObject:str];
        }
        cell.textLabel.text = [loadArray objectAtIndex:indexPath.row];
    }

Спасибо.

Ответы [ 3 ]

2 голосов
/ 29 сентября 2011

Вы захотите заглянуть в Core Data, если хотите сохранить приличное количество данных на iPhone.Однако, если нет, вы можете просто загрузить элементы в массиве в plist и загрузить их оттуда при запуске.

Запись в Plist: Как создать новый список пользовательских свойств в приложениях iPhone

CoreData: http://www.raywenderlich.com/934/core-data-tutorial-getting-started

Edit --->

Как сказал Некто, вы также можете использовать NSUserDefaults, но я советую в основном использовать NSUserDefaults для простых строк NSS и целых чисел.

1 голос
/ 29 сентября 2011

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

Как писать в NSuserDefaults:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"yourObject1" forKey:@"correspopndingKey1"];
[defaults setObject:@"yourObject2" forKey:@"correspopndingKey2"];
[defaults synchronize];

Как читать из NSuserDefaults:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *temp1 = [defaults objectForKey:@"correspopndingKey1"];
NSString *temp2 = [defaults objectForKey:@"correspopndingKey2"];

Вы можете сохранить NSArray аналогичным образом.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:objArray forKey:@"correspopndingKey"];
[defaults synchronize];
1 голос
/ 29 сентября 2011

Я думаю, что для ваших целей NSUserDefaults будет достаточно: Ссылка на класс NSUserDefaults .

Примеры:

// save
NSUserDefaults *simplePlistDb = [NSUserDefaults standardUserDefaults];
[simplePlistDb setBool:YES forKey:@"isItWorking"];
[simplePlistDb setObject:[NSArray arrayWithObjects:@"very", @"cool", nil]];
[simplePlistDb synchronize];

// restore
NSUserDefaults *simplePlistDb = [NSUserDefaults standardUserDefaults];
BOOL flag = [simplePlistDb boolForKey:@"isItWorking"];
if (flag)
{
    NSArray *myArray = [simplePlistDb objectForKey:@"myArray"];
    for (NSString *str in myArray)
        NSLog(@"%@", str);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...