Сохранение пользовательских подробных видов UITableView с помощью SQlite? - PullRequest
0 голосов
/ 08 ноября 2011

Мне нужна помощь в сохранении пользовательских контроллеров детального вида. В моем табличном представлении у меня есть кнопка добавления и редактирования, где пользователь может добавлять и удалять пользовательские ячейки. Каждая ячейка имеет одно и то же пользовательское представление, моя единственная проблема в том, что я могу сохранить каждую ячейку, используя 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 Ответ

1 голос
/ 09 ноября 2011

Почему вы хотите сохранить каждую ячейку в базе данных?Сохраните все данные в ячейках в SQLite.Получая доступ, получите данные из базы данных SQLite в массив словаря.Словарь будет содержать все данные одной ячейки, а массив будет содержать все словари, содержащие данные каждой ячейки.Затем перезагрузите таблицу с данными из этого массива.WWhile Редактирование / добавление / удаление объектов в табличном представлении, выполните всю операцию сначала из массива словаря, а затем, когда одна операция завершена, сохраните ее в sqlite и снова перезагрузите табличное представление.

...