이전에는 이미 데이터 모델 버전 1에서 버전 2로 자동 마이그레이션을 성공적으로 구현했습니다. 이제 SDK 3.1.3을 사용하여 마이그레이션 ". 작업을 완료 할 수 없습니다 (코코아 오류 134110.)"오류가있는 코어 데이터 마이그레이션 실패 : 처음으로 마이그레이션 한 후 새 저장소를 저장하지 못했습니다.
해결되지 않은 오류 오류 도메인 = NSCocoaErrorDomain 코드 = 134110 사용자 정보 = 0x5363360, { NSUnderlyingError = 오류 도메인 : 버전 2에서 버전 3은 다음과 같은 오류와 함께 실패 = NSCocoaErrorDomain 코드 = 256 UserInfo = 0x53622b0 "작업을 완료 할 수 없습니다 (코코아 오류 256)."; 이유 = "처음으로 마이그레이션 한 후 새 저장소를 저장하지 못했습니다."; }
나는 v3으로 v2에서 맵핑 모델을 제공하는 유일한 NSMigratePersistentStoresAutomaticallyOption
사용하여도 NSMigratePersistentStoresAutomaticallyOption
및 NSInferMappingModelAutomaticallyOption
및 마이그레이션을 사용하여 자동 마이그레이션을 시도했습니다.
위의 오류가 기록되고 응용 프로그램에서 사용할 수있는 개체가 없습니다. 그러나 응용 프로그램을 종료하고 다시 열면 모든 것이 제대로 작동합니다. 내가 사용하고
핵심 데이터 방법 나는 이것이 MYAPP ~ .sqlite 파일과 MYAPP.sqlite 파일을 생성하는 참조 다음과 같은 것들 시뮬레이터에서
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"MYAPP" ofType:@"momd"];
NSURL *momURL = [NSURL fileURLWithPath:path];
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
return managedObjectModel;
}
- (NSManagedObjectContext *) managedObjectContext {
if (managedObjectContext != nil) {
return managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator: coordinator];
}
return managedObjectContext;
}
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"MYAPP.sqlite"]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
// Handle error
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
return persistentStoreCoordinator;
}
있습니다. MYAPP ~ .sqlite 파일을 삭제하려고했지만
BOOL oldExists = [[NSFileManager defaultManager] fileExistsAtPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"MYAPP~.sqlite"]];
은 항상 NO를 반환합니다. 어떤 단서? 내가 뭔가 잘못하고 있는거야? 미리 감사드립니다.
해결 했습니까? 나는 지금 정확히 동일한 문제를보고 있는데 오류 134110은 첫 번째 실행시 올바르게로드되지 않고 후속 실행시에만 발생합니다 (3.1.3 참고). 고객에게 매우 나쁜 사용자 경험 – coneybeare