마이 그 레이션을 위조하는 것이 더 나을 것이라고 생각합니다. 여기에 원하는 엄마를 데려 오기위한 코드가 있습니다. EntryModel을 모델 이름으로 바꾸고 버전을 조정하십시오. 그런 다음 NSPersistentStoreCoordinator에서 "- (id) initWithManagedObjectModel"메서드를 사용하여 원하는 모델에 저장소 코디네이터를 가져옵니다.
- (NSManagedObjectModel *)managedObjectModelForVersion:(NSString*)version {
NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"EntryModel" ofType:@"momd"];
if (BETWEEN_INEX(version, @"1.0", @"1.4")) {
modelPath = [modelPath stringByAppendingPathComponent:@"EntryModel"];
modelPath = [modelPath stringByAppendingPathExtension:@"mom"];
} else if (BETWEEN_INEX(version, @"1.4", @"1.5")) {
modelPath = [modelPath stringByAppendingPathComponent:@"EntryModel 2"];
modelPath = [modelPath stringByAppendingPathExtension:@"mom"];
} else if (BETWEEN_INEX(version, @"1.5", @"1.6")) {
modelPath = [modelPath stringByAppendingPathComponent:@"EntryModel 3"];
modelPath = [modelPath stringByAppendingPathExtension:@"mom"];
} else if (BETWEEN_INEX(version, @"1.6", @"1.7")) {
modelPath = [modelPath stringByAppendingPathComponent:@"EntryModel 4"];
modelPath = [modelPath stringByAppendingPathExtension:@"mom"];
}
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
NSManagedObjectModel * oldManagedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSSet *vIdentifiers = [oldManagedObjectModel versionIdentifiers];
for (NSString * identifier in vIdentifiers) {
NSLog(@"Old Model : %@",identifier);
}
return [oldManagedObjectModel autorelease];
}
이 유용 할 수 있습니다 :
#define GREATER_THAN(w,v) ([w compare:v options:NSNumericSearch] == NSOrderedDescending)
#define GREATER_THAN_OR_EQUAL_TO(w,v) ([w compare:v options:NSNumericSearch] != NSOrderedAscending)
#define LESS_THAN(w,v) ([w compare:v options:NSNumericSearch] == NSOrderedAscending)
#define LESS_THAN_OR_EQUAL_TO(w,v) ([w compare:v options:NSNumericSearch] != NSOrderedDescending)
#define BETWEEN_INCLUDE(w,v,z) (GREATER_THAN_OR_EQUAL_TO(w,v) && LESS_THAN_OR_EQUAL_TO(w,z))
#define BETWEEN_EXCLUDE(w,v,z) (GREATER_THAN(w,v) && LESS_THAN(w,z))
#define BETWEEN_INEX(w,v,z) (GREATER_THAN_OR_EQUAL_TO(w,v) && LESS_THAN(w,z))
#define BETWEEN_EXIN(w,v,z) (GREATER_THAN(w,v) && LESS_THAN_OR_EQUAL_TO(w,z))
내가 지연에 대한 미안 해요. 웬일인지 나는 단지이 대답을 보았다. 행운을 빕니다, 이것은 본질적으로 제가 한 일입니다 :-) –