Я пытаюсь перенести из одного файла .xcdatamodel в другой. У меня есть подкласс NSEntityMigrationPolicy, имя которого я ввел в поле xcode-> .xcmappingmodel file -> entity -> «custom Policy».Методы подкласса NSEntityMigrationPolicy не называются
Я запускаю свое приложение, которое успешно открывает и запускает предыдущую версию моих данных, поэтому я могу только предположить, что основная миграция сработала. ОДНАКО мои подклассы NSEntityMigrationPolicy не вызываются, поэтому я могу запустить дополнительный код миграции.
@implementation TestMigrationPolicy
- (BOOL)beginEntityMapping:(NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError * *)error
{
NSLog(@"this log is never shown!!!!");
return YES;
}
Есть ли у кого-нибудь идеи, почему меня это может не вызвать? Я новичок в переходе на основные данные, и я в настоящее время не понимаю, почему это не ведет себя так, как я считаю.
Если это поможет, я создаю постоянный магазин, как это ..
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES],
NSInferMappingModelAutomaticallyOption,
nil];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSLog(@"storeUrl %@", storeUrl);
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
Ах, это круто, спасибо! ... но как насчет того, если я также хочу, чтобы произошло автоматическое отображение? Итак, я на модельной версии 16. Я хочу, чтобы миграция вручную с 15 до 16, но более ранние миграции могут быть автоматическими. – Benjohn