-1

私は CoreData ベースのアプリケーションを使用しており、アプリケーションの起動時に本質的に記述された AppDelegate クラスを持っています。

ボタンをクリックすると、ArrayController(Section1) をサブクラスに渡し、それを解析して TableView セルの値を格納します。

- (IBAction)saveSect1:(NSButton *)sender {

DataMiner *data = [[DataMiner alloc] init];
[data parseArrayController:Section1 tag:0];


}

-(void)parseArrayController:(NSArrayController *)myController tag:(NSInteger)arrayTag {

switch (arrayTag) {
    case 0:

        context = appDelegate().self.managedObjectContext;

        for (NSMutableDictionary *mydict in myController.arrangedObjects) {

            NSNumberFormatter *format = [[NSNumberFormatter alloc] init];
            NSNumber *code = [format numberFromString:[mydict objectForKey:@"diagCode"]];
            [format release];

            Section_1 *section = nil;

            section = [NSEntityDescription insertNewObjectForEntityForName:@"Section_1"   inManagedObjectContext:context];

            section.diagCode = code;
            section.diagDescr = [mydict objectForKey:@"diagDescr"];                            
            section.sectId = [NSNumber numberWithDouble:1];
            section.subSectId = [NSNumber numberWithDouble:1.1];

        }

        NSLog(@"%@", context.registeredObjects);

        [Section_1 release];

        break;

    default:
        break;
}

最初は問題なく動作していましたが、今では次のエラーが表示されます。

永続ストアを開くために使用された管理対象オブジェクト モデルのバージョンは、永続ストアの作成に使用されたバージョンと互換性がありません。

以前にこのエラーに遭遇した人はいますか? 助言がありますか?ありがとう。

- (NSManagedObjectModel *)managedObjectModel
{
if (__managedObjectModel) {
    return __managedObjectModel;
}

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"CoreData_test"        withExtension:@"momd"];
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return __managedObjectModel;
}
4

1 に答える 1

0

テーブル モデルが変更されました。古いデータベースを削除できます (デバイス/シミュレーターからインストール済みのアプリを削除します)。コード内のパスを変更するか、データベースの移行を行ってください。

通常、開発中は古いインストールを削除するだけです。(シミュレーターで、コンテンツと設定をリセットします) データが入力されたままにしておく必要がある場合は、移行を実行する必要があります。

テーブルを変更するたびに、これを行う必要があります。

于 2012-07-13T21:03:52.813 に答える