私が書いた多くのコードを明確にして取り除くのに役立つように、質問を書き直していますが、実際には役に立ちません。
初期スキーマに .xcdatamodel を使用していますが、実行時にスキーマにエンティティを追加する必要があるため、新しい NSManagedObjectModel を追加し、既存のエンティティをコピーしてから、新しいエンティティを追加する必要があります。
最初に新しい NSPersistantStore を作成してから NSMigrationManager に移行を依頼すると、ファイルが既に存在するためソース モデルを移行先パスに移動できないというエラーが表示されます。
NSMigrationManager に移行を依頼すると、エラー コードやデバッガーに何も表示されずにクラッシュします。
NSMappingModel *mappingModel = [NSMappingModel inferredMappingModelForSourceModel:originalModel destinationModel:newModel error:&error];
NSMigrationManager *manager = [[NSMigrationManager alloc] initWithSourceModel:originalModel destinationModel:newModel];
if (![manager migrateStoreFromURL:[originalStore URL]
type:NSSQLiteStoreType
options:[self autoMigrationOptions]
withMappingModel:mappingModel
toDestinationURL:[NSPersistentStore MR_urlForStoreName:[self nextStoreName]]
destinationType:NSSQLiteStoreType
destinationOptions:[self autoMigrationOptions]
error:&error])
{
return NO;
}
URL はすべて適切で、コンソールにログを記録したときのマッピング モデルは適切に見えます。マネージャーが存在するなどです。この場合、まだ NSPersistantStore を作成していませんが、ストアがリンク先 URL を指定すると、自動的に作成されます。
誰にも手がかりがありますか?