NSPersistentStoreCoordinator崩溃

时间:2011-10-14 02:15:56

标签: iphone core-data xcode4 ios5

我最近从xcode 3.x更新到4.2,当我在4.2中运行应用程序时,我遇到核心数据问题。我也更新到iOS 5,所以可能问题在那里,我不太确定。

应用程序在3.x中运行良好但在4.2中崩溃。每当我尝试访问NSPersistentStoreCoordinator对象时,就会出现此问题。以下是应用崩溃的区域示例。

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

    if (persistentStoreCoordinator_ != nil) {
        return persistentStoreCoordinator_;
    }

    NSURL *storeURL = [[self applicationDocumentsDirectory]    URLByAppendingPathComponent:@"GraffitiMap.sqlite"];

    NSError *error = nil;
    persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }    

    return persistentStoreCoordinator_;
}

它兑换成一行:persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

关于将应用程序从xcode 3.x转换为4.2或升级到iOS 5,我有什么遗漏?

1 个答案:

答案 0 :(得分:1)

在我升级到Xcode 4.2和iOS 5之前,我遇到了这个问题。

我的应用程序在[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];上遇到错误EXEC_BAD_ACCESS时出现崩溃,我做了很多测试来调查问题所在。最后,在我删除了数据模型中的所有获取请求之后,错误消失了并且说了另一个错误“找不到实体名称”。所以我试图逐个删除获取请求,并一次又一次地测试以确定哪个是“坏”获取请求。我发现有两个获取请求做同样的事情(在同一个实体上有相同的标准)虽然它们有不同的名称,但我删除了其中一个,错误已完全修复。

今天我再次遇到这个问题,我确信这次没有重复的获取请求,但错误仍然存​​在。我认为苹果在新的iOS5中在CoreData上添加了一些验证,但找不到任何描述这个的文档。

希望这能帮到你