Сохранение пользовательских подробных видов 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 и снова перезагрузите табличное представление.

Другие вопросы по тегам