nil不是合法的NSManagedObjectContext参数

时间:2013-07-04 20:59:16

标签: ios nsmanagedobjectcontext

调用核心数据时出现以下错误

   Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'ExcerciseInfo''

我正在使用的课程适用于另一个uitableview但不适用于当前的课程。我已经指出了引发错误的地方:

   if (_fetchedResultsController != nil) {
        return _fetchedResultsController;

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription
                                   entityForName:@"ExcerciseInfo" inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];

我已经查看了其他类似问题,但没有强调任何相关修复。我认为我不会传递上下文,因为它不是第一个视图控制器,而是第二个选项卡。

目前在我的appdelagate中,我正在调用此函数:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UITabBarController *tbc = (UITabBarController *)self.window.rootViewController;
    UINavigationController *navigationController = tbc.viewControllers[0];
    FBCDMasterViewController *controller = (FBCDMasterViewController *)navigationController.topViewController;
    controller.managedObjectContext = self.managedObjectContext;

    return YES;
}

我定位的其他uitableview控制器是FBCDRoutineViewController

有什么建议吗?我希望这很清楚。

1 个答案:

答案 0 :(得分:2)

正如其他用户所说。我没有在新的视图控制器上调用上下文。

- (NSManagedObjectContext *)managedObjectContext
{
    NSManagedObjectContext *context = nil;
    id delegate = [[UIApplication sharedApplication] delegate];
    if ([delegate performSelector:@selector(managedObjectContext)]) {
        context = [delegate managedObjectContext];
    }
    return context;
}