Сохранение пользовательских подробных видов UITableView с помощью SQlite?
Мне нужна помощь в сохранении пользовательских контроллеров детального представления. В моем табличном представлении у меня есть кнопка добавления и редактирования, где пользователь может добавлять и удалять пользовательские ячейки. Каждая ячейка имеет одно и то же настраиваемое представление, моя единственная проблема в том, что я могу сохранить каждую ячейку с помощью SQlite или другой базы данных? Я просто не хочу создавать тонну контроллеров представления и сохранять каждую ячейку, используя NSUserDefaults.
Мой код:
Таблица. ч =
IBOutlet UITableView *warrantyTableView;
NSMutableArray *data;
IBOutlet UITextField *tableCellText;
IBOutlet UITableView *mainTableView;
IBOutlet UINavigationItem *navItem;
}
- (IBAction)addRowToTableView;
- (IBAction)editTable;
- (NSString *)dataFilePath;
- (IBAction)endText;
Table.m =
- (NSString *)dataFilePath {
NSString *dataFilePath;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
dataFilePath = [[documentDirectory stringByAppendingPathComponent:@"applicationData.plist"] retain];
return dataFilePath;
}
- (void)saveData {
[NSKeyedArchiver archiveRootObject:[data copy] toFile:[self dataFilePath]];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here. Create and push another view controller.
PushedViewController *pushedViewController = [[PushedViewController alloc] initWithNibName:@"PushedView" bundle:nil];
// ...
// Pass the selected object to the new view controller.
PushedViewController *ifView = [[PushedViewController alloc] initWithNibName:@"PushedView" bundle:nil];
[self.navigationController pushViewController:ifView animated:YES];
[ifView release];
}
1 ответ
Почему вы хотите сохранить каждую ячейку в базе данных? Сохраните все данные в ячейках в SQLite. Получая доступ, получите данные из базы данных SQLite в массив словаря. Словарь будет содержать все данные одной ячейки, массив будет содержать все словари, содержащие данные каждой ячейки. Затем перезагрузите таблицу с данными из этого массива. WWhile Редактирование / добавление / удаление объектов в табличном представлении, выполните всю операцию сначала из массива словаря, а затем, когда одна операция завершена, сохраните ее в sqlite и снова перезагрузите табличное представление.