0

新しい CoraData モデルを使用して、(他のユーザーが作成した) アプリの新しいバージョンを作成したいと考えています。私の疑問は次のとおりです。コアデータモデルは更新を通じて永続的です。以前の CoreData モデルが新しいバージョンのアプリで問題を引き起こさないことを確認したいと思います。

いくつかのベスト プラクティスに従う必要がありますか?

4

1 に答える 1

1

古いアプリ データを保持して移行を行うかどうかは明確ではありません。

そうでない場合は、新しいモデルを公開する際に、コア データがモデルが古いモデルと異なることを認識したときに、次の方法でストアを消去できます。 [[NSFileManager defaultManager] removeItemAtURL:storeURL error:nil];

次に、ストアを再作成します。

[__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];

ストアが一致しないことが通知されます

/**
 Returns the persistent store coordinator for the application.
 If the coordinator doesn't already exist, it is created and the application's store added to it.
 */
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator

メソッドで、通常は appDelegate.

基本的に 2 つのオプションがあります。新しいモデルに従って新しいストアを作成するか (古いデータは消えます)、古いモデルを新しいモデルに移行します (目的によっては可能ですか?)。

アプリが根本的に異なる場合は、新しいバージョンではなく「新しいアプリ」を公開することを検討できます。次に、古いアプリのメッセージのように、ユーザーを新しいアプリにリダイレクトする必要があります。基本的には、古いユーザーにアプリを「そのまま」保持してもらいたい場合です。これは、古い iOS バージョンに準拠しているため、新しい iOS の機能、標準、ユーザー インターフェイスを使用して新しいアプリを公開するためです。

于 2012-06-17T15:16:07.363 に答える