我最近从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,我有什么遗漏?
答案 0 :(得分:1)
在我升级到Xcode 4.2和iOS 5之前,我遇到了这个问题。
我的应用程序在[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
上遇到错误EXEC_BAD_ACCESS
时出现崩溃,我做了很多测试来调查问题所在。最后,在我删除了数据模型中的所有获取请求之后,错误消失了并且说了另一个错误“找不到实体名称”。所以我试图逐个删除获取请求,并一次又一次地测试以确定哪个是“坏”获取请求。我发现有两个获取请求做同样的事情(在同一个实体上有相同的标准)虽然它们有不同的名称,但我删除了其中一个,错误已完全修复。
今天我再次遇到这个问题,我确信这次没有重复的获取请求,但错误仍然存在。我认为苹果在新的iOS5中在CoreData上添加了一些验证,但找不到任何描述这个的文档。
希望这能帮到你