Core Dataのデータモデルソースが複数あるため、ManagedObjectModelを取得する際に、以下のように書いていると、Cocoaフレームワークがよしなに計らって適切なデータモデルソースを取得してくれます。
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
ただ、マイグレーションの為などで、複数のデータモデルソースがある場合、どれを使用するかわからなくなってしまい、Cocoa error 134130. が発生してしまうことがあるようです。
Unresolved error Error Domain=NSCocoaErrorDomain Code=134130 UserInfo=0x1458410 “Operation could not be completed. (Cocoa error 134130.)”, { (省略) reason = “Can’t find model for source store”; }
明示的にどのデータモデルを使用するのか指定する必要があります。以下の様にコードを書けば問題なく処理が完了されませんでしょうか。
NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"DataModel" ofType:@"momd"]; NSURL *urlModel = [NSURL fileURLWithPath:modelPath]; managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:urlModel];
参考サイト
http://stackoverflow.com/questions/3146515/iphone-core-data-lightweight-migration-cocoa-error-134130-cant-find-model-for-s http://cocoadays.blogspot.com/2010/12/iosmac-coredata-2.html