0

我按照 Lynda 的 Core Data For IOS 教程构建了我的应用程序的一部分。它从一个导航控制器/表格视图开始,然后进入其他几个视图。一切正常。

问题是,我需要添加一个基本的“主菜单”主屏幕。当我在情节提要中添加一个新的空白视图,然后将其设置为初始视图控制器然后 b/r 时,我遇到了崩溃。是否有指向另一个视图的链接都没有关系。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController viewControllers]: unrecognized selector sent to instance 0x748dce0'

如果我注释掉 appdelegate didfinishloadingwithoptions 中的代码(见下文),应用程序会根据需要使用新的空白窗口加载。

因此,我在应用程序委托 didfinishloading 中有代码,但它在加载时使手机崩溃,而它仍保留在 appdelegate.m 中

编辑但是仍然有其他相关问题,我已经添加了另一个 appdelegate 文件,现在应用程序按预期加载到空白启动窗口。但是,当我尝试导航到 tableviewcontroller 并在它的 viewdidload 事件上触发 fetchresults 方法并检查 fetchresultscontroller 对象的有效性时,我收到了这个崩溃错误。

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+entityForName:nil 不是搜索实体名称“PayItemMaster”的合法 NSManagedObjectContext 参数 *第一次抛出调用堆栈:

现在引起问题的代码是这样的

-(NSFetchedResultsController *) fetchedResultsController {
if (_fetchedResultsController != nil) {
    return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"PayItemMaster"
                                          inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"payClass"
                                                               ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

_fetchedResultsController = [[NSFetchedResultsController alloc]initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"payClass" cacheName:nil];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;

}

.......当在应用程序加载时调用该视图时,此代码工作正常,但在从另一个视图调用视图时会导致问题(请记住应用程序用于启动此表视图正常,但我现在想要它在“菜单视图”中启动,然后导航到这个仍然有原始编码的表格视图)

4

0 回答 0