У меня есть класс UITableViewController, и я хочу сохранить его информацию с помощью NSUserDefaults. Моя таблица создается с помощью массива под названием «задачи», которые являются объектами класса NSObject «Новая задача». Как и где я использую NSUserDefaults? Я знаю, что мне нужно добавить свой массив как объект NSUserDefaults, но как мне его восстановить? Любая помощь будет оценена по достоинству.Сохранить UITableViewController с NSUserDefaults
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *DoneCellIdentifier = @"DoneTaskCell";
static NSString *NotDoneCellIdentifier = @"NotDoneTaskCell";
NewTask* currentTask = [self.tasks objectAtIndex:indexPath.row];
NSString *cellIdentifer = currentTask.done ? DoneCellIdentifier : NotDoneCellIdentifier;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer forIndexPath:indexPath];
if(cell==nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifer];
}
cell.textLabel.text = currentTask.name;
return cell;
}
Это мой метод viewdidload:
- (void)viewDidLoad
{
[super viewDidLoad];
self.tasks = [[NSMutableArray alloc]init];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:self.tasks forKey:@"TasksArray"];
}
Не требуется вызвать 'synchronize' для сохранения изменений, так как она вызывается автоматически через определенные промежутки времени. Вам нужно будет только позвонить, если ваше приложение собирается выйти, и вы не могли дождаться. –