【问题标题】:EXC_BAD_ACCESS in NSEntityDescription creation of Core DataEXC_BAD_ACCESS 在 NSEntityDescription 创建 Core Data
【发布时间】:2012-02-07 13:37:55
【问题描述】:

我正在从一本基于 iOS4 的书中学习 CoreData,因此,为了实现书中的示例代码,我将代码迁移到 iOS5(带有故事板和 ARC)。 我还实现了 iOS4 代码,它运行良好,但在 iOS5 版本中,当我从模型对象的名称中获取 NSEntityDescription 时,我得到了 EXC_BAD_ACCESS

AppDelegate *appDelegate =[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext]; 

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Customer" inManagedObjectContext:context];

信号出现在代码的最后一行。我知道委托应该将上下文传递给视图控制器,但是通过这段代码,我确信上下文不是问题。

有什么想法吗?为什么我可以在这里得到EXC_BAD_ACCESS?我可以确定这条线是正确的吗?

【问题讨论】:

    标签: ios core-data exc-bad-access


    【解决方案1】:

    这似乎意味着您的实体字符串可能是错误的?为了避免崩溃,你可以使用类似的东西:

    NSEntityDescription *entity = [[managedObjectModel entitiesByName] 
       objectForKey:@"Customer"];
    

    【讨论】:

    • 如我所说,我正在学习Core Data,所以我不知道这种方法。使用您说的entitiesByName 方法,我意识到模型中没有实体。所以问题是我更改了 .xcdatamodeld 文件的名称。虽然我也在委托中更改了它,但似乎如果您想更改模型文件名(并且您希望应用程序正常工作 XD),您必须使用这个新名称创建一个新模型文件,如此处所述: stackoverflow.com/questions/5621178/rename-xcdatamodel-file 现在问题终于解决了!非常感谢@Mundi
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 2015-07-06
    • 2011-05-08
    相关资源
    最近更新 更多