首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心数据- NSManagedObjectContext在主细节应用程序中返回零

核心数据- NSManagedObjectContext在主细节应用程序中返回零
EN

Stack Overflow用户
提问于 2014-04-22 10:15:25
回答 1查看 121关注 0票数 0

我正在开发一个闹钟应用程序,我使用的是苹果的主细节应用模板的核心数据栈,所以所有的核心数据都能正常工作,直到我在- (void)applicationDidEnterBackground:(UIApplication *)application中调用了MasterViewController的一个方法,它在应用程序中做了一些工作,最后应该是tableView [self.tableView reloadData]

从现在起,我总是会犯错误

+entityForName: nil不是合法的NSManagedObjectContext参数,它搜索实体名'myEntity‘

当应用程序运行时,一切都很好,但是只有当应用程序处于后台时,tableView才应该重新加载,我得到了这个错误。有人知道我怎么能解决这个问题吗?

在AppDelegate.m。

代码语言:javascript
复制
- (NSManagedObjectContext *)managedObjectContext {
if (_managedObjectContext != nil) return _managedObjectContext;

NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {

    _managedObjectContext = [[NSManagedObjectContext alloc] init];
    [_managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return _managedObjectContext; }

我在applicationDidFinishLaunchingWithOptions方法中有以下代码:

代码语言:javascript
复制
//some other stuff before...
WKMasterViewController *controller = (WKMasterViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;

在MasterViewController.m中,我有以下代码:

代码语言:javascript
复制
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
    return _fetchedResultsController;
}

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

[fetchRequest setFetchBatchSize:20];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"zeit" ascending:NO];
NSArray *sortDescriptors = @[sortDescriptor];

[fetchRequest setSortDescriptors:sortDescriptors];

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Master"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;

NSError *error = nil;
if (![self.fetchedResultsController performFetch:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}

return _fetchedResultsController; }    

谢谢!!

EN

回答 1

Stack Overflow用户

发布于 2014-04-22 10:26:33

CHECK->此函数

代码语言:javascript
复制
- (NSManagedObjectContext *)managedObjectContext {}

正在返回零 _managedObjectContext

如果变量上下文为零。这意味着您的managedObjectContext方法不能正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23216640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档