1

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

   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

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

4

1 回答 1

2

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

- (NSManagedObjectContext *)managedObjectContext
{
    NSManagedObjectContext *context = nil;
    id delegate = [[UIApplication sharedApplication] delegate];
    if ([delegate performSelector:@selector(managedObjectContext)]) {
        context = [delegate managedObjectContext];
    }
    return context;
}
于 2013-07-04T22:10:05.417 回答