Редактирование предварительно заполненных данных базы данных sqlite, управляемых в приложении IOS - PullRequest
1 голос
/ 31 октября 2011

Я хочу добавить и удалить новые записи в моем приложении.Когда я добавляю или удаляю его, он также должен выполнять те же действия с базой данных sqlite.Но как?

Сущность, которой я хочу управлять, называется «беглецом».Ниже внизу находится мой первый просмотр controller.m (который содержит tableview и nsmutable array * items):

 - (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

iBountyHunterAppDelegate *appDelegate = (iBountyHunterAppDelegate*)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Fugitive"  inManagedObjectContext:managedObjectContext];
[request setEntity:entity];

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];

NSError *error;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
    // Handle the error;
}

self.items = mutableFetchResults;
[mutableFetchResults release];
[request release];
[self.tableView reloadData];
}

Даже малейший совет будет высоко оценен.Спасибо!

1 Ответ

0 голосов
/ 31 октября 2011

Я думаю, что у вас здесь неправильный подход. Не видя большую часть вашего другого кода, я не могу сказать слишком много, однако вот как CoreData должен работать:

Вы обновляете любые изменения в CoreData FIRST, а затем CoreData уведомляет делегата / наблюдателя о том, что данные должны быть перезагружены, и именно здесь вы обновляете кэш объектов и уведомляете об обновлении табличного представления.

Поэтому не обновляйте массив данных самостоятельно, вы просто кэшируете его из CoreData.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...