私の最初のiOSアプリケーションの1.1リリースでほとんど終了しました。私はコアデータモデルに2つの小さな変更を加えました。具体的には、私は自分のテーブルの1つに2つの属性を追加しました。これは私の最初のコアデータアプリであり、したがって私の最初のコアデータはライブアプリケーションに更新されています。私は現在のユーザーにとってはうまくいかないかもしれない出荷コードについて少し神経質です。それは小さな更新版なので、私はApplesの自動移行メソッドが実行すると推測していますが、私は推測したくありません。更新されたコアデータモデルでiOSアプリケーションを更新
関連するコードは次のようになります。
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
{
//NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
1.1で、私はNSDictionary *options
を追加しました。 、基本的に
if (currentPage.inputType == @"drawing") {
[pageView changeToDrawing];
} else if (currentPage.inputType == @"text") {
[pageView changeToText];
} else {
currentPage.inputType = @"text";
[pageView changeToDrawing];
}
これらの変化に十分であるか、私は他の何かをしなければならない操作を行います。私のビューコントローラで
は私が必要な行はこのようにnilでないことを確認してください?
あなたの答えをありがとう、私は1つの関連する質問があります。新しいモデルバージョンを作成する前に属性を追加しました。私の1.0バージョンから新しい属性を削除し、2.0データモデルバージョンでのみ使用するかどうかは重要ですか?ありがとう! – Anders
絶対にそれらを1.0から削除し、次のバージョンに追加する必要があります。私は最近この事実によってちょっとしたことがありました。 1.0は*現在*デプロイされているものとまったく同じ*である必要があります。そうしないと例外が発生します。これには、属性と関係の両方が含まれます。 – Jeremy
ああ、ありがとう。それは働くようになった。あなたが提案したとおりにしました。 :) – Anders