【问题标题】:Xcode 6 Beta crashes app using core data when run on iPad 7.1Xcode 6 Beta 在 iPad 7.1 上运行时使用核心数据使应用程序崩溃
【发布时间】: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


【解决方案1】:

感谢沃伦·伯顿。我觉得有点傻。我以为我已经使用“重置内容和设置”从模拟器中删除了该应用程序的所有实例,但我想我错过了 iPad Air Simulator。我也忘了从物理 iPad 上删除它。一旦我删除了两个安装并重新构建并运行,一切正常。所以我猜我的商店文件在迁移到 iOS 8 SDK 的新测试版时损坏了。看起来损坏只发生在 iOS 7 上的安装中,而 iOS 8 安装则正常。

【讨论】:

    猜你喜欢
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2013-06-27
    相关资源
    最近更新 更多