문자열 속성을 BOOL 속성으로 바꾸는 CoreData 저장소 마이그레이션을 구현 중입니다. 문자열이 "0"이고 bool이 "예"여야하며 다른 모든 경우 bool은 "NO"여야합니다. 충분히 간단하게 들리지만 매핑 모델을 추가해야한다고 생각합니다. Xcode에 추가하고 createDestinationInstancesForSourceInstance
을 구현했습니다.MagicalRecord로 수동 이전
- (BOOL)createDestinationInstancesForSourceInstance:(NSManagedObject *)sInstance entityMapping: (NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError **)error
{
NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:[mapping destinationEntityName] inManagedObjectContext:[manager destinationContext]];
NSString *oldValue = [sInstance valueForKey: @"oldString"];
NSNumber *newValue = @(NO);
if ([oldValue integerValue] == 0)
newValue = @(YES);
[newObject setValue: newValue forKey: @"newBool"];
[manager associateSourceInstance:sInstance withDestinationInstance:newObject forEntityMapping:mapping];
return YES;
}
그러나 이것은 결코 호출되지 않습니다. 내가 MagicalRecord을 사용하고 있기 때문에
, 나는 또한 사용하고 : 내 가게를 초기화하기 때 NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @(YES), NSInferMappingModelAutomaticallyOption: @(NO)};
,하지만 난 MagicalRecord와 어떻게 것을 사용합니까 :
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed: @"storename.sqlite"];
을 나는 또한 사용할 필요가 읽어?
업데이트 : 따라서 MR은 MR_autoMigrationOptions
을 사용하여 마이그레이션 옵션을 설정합니다. 수동 마이그레이션을 지원하기 위해이를 수정할 수있는 방법이 있습니까? 수동 마이그레이션을 수행하기 위해
내가 MR, 당신은 어떤 버전을 사용하고 있는지 가지고 있지 않은거야? – Koen
[MagicalRecord Version 3] (https://github.com/magicalpanda/MagicalRecord/tree/release/3.0) –
아직 출시되지 않은 버전이며 사용하기를 주저합니다. 그러나 어쨌든 고마워. – Koen