【发布时间】:2014-08-07 13:34:30
【问题描述】:
几天前,我更新到 Xcode 6 Beta 5,当然还有 iOS 8 Beta SDK Beta 5。它在模拟器和运行 iOS 8 的测试设备上运行我的 Core Data 应用程序之一。但后来我尝试了在运行 iOS 7.1 的物理 iPad(第 4 代)上运行该应用程序并因此错误而崩溃。
dyld`dyld_fatal_error:
0x2be730c4:陷阱
0x2be730c8: 无
所以我尝试在 iPad Air 7.1 模拟器上运行它,但没有收到致命错误,但在应用程序崩溃后我得到了以下控制台日志。
'NSInvalidArgumentException', reason: 'executeFetchRequest:error: A fetch request must have an entity.'
当我运行 iPad Retina 7.1 Simulator(应该对应于第 4 代 iPad)时,它编译并运行得很好!此外,运行 iOS 7.1 的任何 iPhone(无论是否模拟)都没有问题!在 beta 5 之前,我从未遇到过任何核心数据问题。
我已经清理了项目,重启了我的 Mac 几次,但我仍然无法让它在我的物理 iPad 或 iOS 7.1 上的 iPad Air 模拟器上运行。
我意识到这可能只是一个非常不方便的错误,但我想知道我是否只是忽略了一些简单的事情。我有一个从我的核心数据实体中提取的自定义类,这是我用来调用托管对象上下文的代码:
#import "AppDelegate.h"
-(void) startContext {
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
self.context = [appDelegate managedObjectContext];
}
这就是我被证明这样做的方式。这是加载托管对象上下文以执行获取请求的坏方法吗?有没有不同的方法我应该这样做可能不会导致这些错误?
【问题讨论】:
-
您也从设备上删除了该应用程序?这通常意味着存储文件已损坏或找不到托管对象模型。
标签: ios xcode ipad core-data nsmanagedobjectcontext