Как мне сохранить данные приложения тревоги? - PullRequest
0 голосов
/ 28 августа 2011

Я делаю приложение для iPhone, и мне было интересно, как лучше всего сохранить мои данные.Я попытался реализовать CoreData, но он не работает.Я посмотрел и обнаружил, что для использования CoreData вы должны отметить флажок «Использовать CoreData для хранения» при создании нового проекта в Xcode, чего я не сделал.Вместо этого я создал приложение на основе представления.Могу ли я реализовать CoreData или использовать что-то еще, например, plist или SQLite.

1 Ответ

3 голосов
/ 28 августа 2011

Что бы я сделал, просто сохраните данные в NSUserDefaults как Массив словарей.

Например, допустим, у вас есть:

NSDictionary *alarmOne = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:fireDateOne, labelOne, repeatIntervalOne, nil] forKeys:[NSArray arrayWithObjects:@"fireDate", @"label", @"repeatInterval"]];
NSDictionary *alarmTwo = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:fireDateTwo, labelTwo, repeatIntervalTwo, nil] forKeys:[NSArray arrayWithObjects:@"fireDate", @"label", @"repeatInterval"]];
NSArray *alarmsToBeSaved = [NSArray arrayWithObjects:alarmOne, alarmTwo, nil];
//save the alarms
[[NSUserDefaults standardUserDefaults] setObject:alarmsToBeSaved forKey:@"MyAlarms"];

//get alarms back from NSUserDefaults
NSArray *alarms = [[NSUserDefaults standardUserDefaults] objectForKey:@"MyAlarms"];
for (NSDictionary *alarm in alarms){
    NSLog(@"label of alarm: %@", [alarm objectForKey:@"label"]); //output alarm labels for example!
}

Вы также можете сохранить этот массив на диск вкаталог Documents приложения ...

Базовые данные обычно лучше, когда у вас большие наборы данных, которые вы хотите быстро извлечь из базы данных (поиск) и лучше контролировать использование памяти.

Как добавить новый будильник?

NSDictionary *alarmThree = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:fireDateThree, labelThree, repeatIntervalThree, nil] forKeys:[NSArray arrayWithObjects:@"fireDate", @"label", @"repeatInterval"]];

NSMutableArray *newAlarms = [NSMutableArray arrayWithObjects:[[NSUserDefaults standardUserDefaults] objectForKey:@"MyAlarms"]];
//add the new alarm Dict
[newAlarms addObject:alarmThree];
//save the array
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithArray:newAlarms] forKey:@"MyAlarms"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...