我正在使用闹钟应用程序,我使用Apple的Master-Detail应用程序模板中的核心数据堆栈,因此所有内容都适用于Core Data,直到我打电话给我在
- (void)applicationDidEnterBackground:(UIApplication *)application
MasterViewController中的一个方法在应用程序期间执行一些工作是在后台,最后应该是tableView [self.tableView reloadData]
。
从这一点来说,我总是得到错误
+ entityForName:nil不是合法的NSManagedObjectContext参数,用于搜索实体名称' myEntity'
当应用程序运行时,一切正常,但只有当应用程序处于后台时才重新加载tableView我才会收到此错误。谁知道我怎么能解决这个问题?
在AppDelegate.m中
- (NSManagedObjectContext *)managedObjectContext {
if (_managedObjectContext != nil) return _managedObjectContext;
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return _managedObjectContext; }
我在applicationDidFinishLaunchingWithOptions方法中有这段代码:
//some other stuff before...
WKMasterViewController *controller = (WKMasterViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
在我的MasterViewController.m中,我有以下代码:
- (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; }
谢谢!
答案 0 :(得分:0)
<强>入住&GT;这个功能
- (NSManagedObjectContext *)managedObjectContext {}
退货是否 _managedObjectContext
?
如果变量上下文为零。这意味着您的managedObjectContext方法无法正常工作。