首先,这是我的基本设置。我正在尝试将 NSManagedObjectContext (MOC) 从我的 AppDelegate 传递给选定的自定义 ViewController。
首先,在“AppDelegate.m”中,我这样做:
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
FirstTableViewController *tableVC = (FirstTableViewController *)navigationController.topViewController;
tableVC.managedObjectContext = self.managedObjectContext;
将 MOC 传递给位于 navigationController 和自定义 ViewController 之间的 tableViewController。
到目前为止,这不会导致任何错误。
但是,在 tableViewController“FirstTableViewController.m”中,我想使用 prepareforsegue 将 MOC 传递到自定义 ViewController:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"mapClicked"]) {
CustomScrollViewController *customSVC = [segue destinationViewController];
NSManagedObjectContext *context = self.managedObjectContext;
[customSVC setManagedObjectContext:context];
}
}
然后在自定义 ViewController "CustomScrollViewController.m" 中调用以下方法:
- (void)setManagedObjectContext:(NSManagedObjectContext *)context
{
self.managedObjectContext = context;
}
这就是它卡住的地方。它似乎一遍又一遍地执行该方法,(请参阅此处)然后崩溃。
如果您需要查看更多代码,这里是 github 存储库
任何帮助表示赞赏!