0

軽量の移行を実行しようとしていますが、最初のデータモデルの作成方法が原因で問題が発生しています。最初のデータ モデルはバージョン管理されていなかったため、次のコードになりました。

-(NSManagedObjectModel *)managedObjectModel {

    //NSLog(@"%s", __FUNCTION__);
    if (managedObjectModel != nil) {
        return managedObjectModel;
    }
    //managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];

    NSString *mainPath = [[NSBundle mainBundle] pathForResource:@"myDatabase" ofType:@"momd"];

    NSURL *mainMomURL = [NSURL fileURLWithPath:mainPath];
    managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:mainMomURL];
    return managedObjectModel;
}

エラーを返します: * キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '* -[NSURL initFileURLWithPath:]: nil string parameter'

これは、最初のデータ モデル (アプリで既に多くの人に展開したもの) に、momd 拡張機能ではなく、mom 拡張機能があったためだと確信しています。しかし、これを取り出して元に戻すと

managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];

エラーが表示されます: キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '名前の異なる 2 つのエンティティを持つモデルをマージできません...

誰かがこの状況に遭遇したのはこれが初めてではないことを願っています...現在のすべてのユーザーの移行を成功させるためにできることはありますか?

4

1 に答える 1

0
于 2011-10-10T00:05:32.310 に答える