2011-10-14 32 views
1

我最近在Xcode 3.x的更新到4.2,我有,当我在4.2上运行的应用程序与核心数据的问题。我也更新到iOS 5,所以也许问题在那里,我不太确定。NSPersistentStoreCoordinator崩溃

的应用程序在4.2跑了3.X而崩溃的罚款。每当我尝试访问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?

+0

你在当崩溃发生在控制台中看到什么错误?另外,尝试将'[self managedObjectModel]'分配给中间变量,以便您可以看到您到达的位置。有 – Caleb

回答

1

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

我的应用程序是保持碰撞的[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];错误EXEC_BAD_ACCESS,我做了很多的测试,以调查问题的所在。最后,我删除了数据模型中的所有提取请求后,错误消失,并说另一个错误“未找到实体名称”。所以我试图一个接一个地删除获取请求,并且一次又一次地测试以确定哪个是“糟糕的”获取请求。而且我发现有两个撷取要求做同样的事情(对同一实体相同的标准),虽然他们有不同的名字,比我删除了其中的一个,错误是完全固定。

今天我这个问题再次见面,我敢肯定,有没有重复的读取请求这一次,但错误依然存在。我认为苹果在新的iOS5上添加了一些CoreData验证,但是找不到任何描述这个的文档。

希望这有助于你

+0

上午同样的问题 - 但是,我不想/不能只删除我的获取请求 - 我使用的是他们!对此有任何进一步的想法。 – ferdil

+0

如果您使用两个完全相同的请求,为什么不删除其中的一个。或者,也许你可以为其中一个请求添加一些标准,就像“1 = 1”一样,使它们与众不同。 – Joe