У меня есть приложение Core Data, настроенное с ListViewController, DetailViewController и EditingViewController, где происходит большая часть редактирования. На ListViewController у меня есть графическое изображение флажка, и я могу переключать два изображения, выбирая строку в
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Можно ли отредактировать запись Core Data из ListViewController, чтобы я мог сделать свой выбор постоянным? Я не могу выработать синтаксис для выбора записи, редактирования и сохранения значения, которое просто переключится с истинного на ложное.
джон
Спасибо за быстрый ответ! Дополнительная информация после ответа 1. Ваше предположение верно. Я моделирую это приложение на образце CoreData Books. Я не использую кнопку, а использую два изображения для создания флажка и не отмечен флажок. Я добавил логическую «проверку» в мою сущность, заново создал файл заголовка и добавил файл заголовка в свой ListViewController. Вот упрощенная версия заголовочного файла datamodel.
@interface Patient : NSManagedObject
{
}
@property (nonatomic, retain) NSString * location;
@property (nonatomic, retain) NSNumber * check;
@property (nonatomic, retain) NSString * lastName;
@end
А вот моя модификация вашего кода:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
NSManagedObject *entityObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
if (![entityObject.check boolValue]) {
entityObject.check = [NSNumber numberWithBool:YES];
cell.imageView.image = [UIImage imageNamed:@"check.png"];
}
else {
entityObject.check= [NSNumber numberWithBool:NO];
cell.imageView.image = [UIImage imageNamed:@"uncheck.png"];
}
Однако, это дает мне ошибку «Запрос на проверку элемента в чем-то, что не является структурой или объединением». Я проверил, что новый атрибут является логическим, и что файл заголовка импортирован в ListViewController. Какие-нибудь мысли?
Наконец, устраняет ли этот код необходимость сохранять entityObject.check в базе данных? Еще раз спасибо.