Я использую Xcode 4.2 и iOS SDK 5.0 и шаблон приложения Apple Master-Detail для iPad с базовыми данными. Это похоже на пример кода "Locations". Мне удалось передать контекст управляемого объекта (MOC) из MasterViewController (MVC) в DetailViewController (DVC). Контроллер подробного представления принимает ввод от пользователя в некоторых текстовых полях и сохраняет их в основных данных; эта часть работает как шарм. Теперь у меня есть ActionViewController (AVC), который представляет собой Popover View, который должен позволять пользователю отправлять по электронной почте все данные в MOC, если они того пожелают. Тем не менее, при попытке сделать выборку я получаю SIGABRT. Я использовал точки останова, чтобы точно определить, где:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Fetch the crosses
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event"
inManagedObjectContext:context];
[fetchRequest setEntity:entity]; // Where it crashes
//Other code
}
Кроме того, в отладчике я вижу, что * указатель контекста равен 0x0, что, как я предполагаю, означает, что его там нет?
То, как я проходил MVC, проходило так:
// Pass the managedObjectContext to the DetailViewController as a property
_detailViewController.managedObjectContext = self.managedObjectContext;
//Pass the MOC to the actionViewController
_actionViewController.managedObjectContext = self.managedObjectContext;
Я посмотрел другие посты, и кажется, что передача MOC всем контроллерам представления из AppDelegate может быть подходящим способом, но я хотел выяснить, почему ввод данных работает для DVC, но происходит сбой при получении данных. в АВК. Какую большую ошибку я совершил?
Исправлена ссылка на проект github: https://github.com/scottdaniel/fly_punnett