2016-09-08 3 views
0

私のテーブルの名前を変更してテーブルの属性を追加して、新しいバージョンのアプリケーションを作成したい場合は、そのアプリケーションが既にインストールされている場合はデータを保持します。コアデータ:ユーザーおよびその現在のデータに問題がない属性の名前を変更します。

まず私はオプション設定:

 let options = [NSMigratePersistentStoresAutomaticallyOption:true, NSInferMappingModelAutomaticallyOption:true] 
     try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: options) 

をそして、私は、属性の名前を変更し、新しいモデルに私のテーブルに別の属性を追加した場合、アプリはつもり続けるんので、私は、新しいバージョンのモデルを作成しましたデータ?

+0

ではなく、複製を作成するよりも、新たな詳細があなたの元の質問を更新してください。 – Wain

+2

[コアデータ:テーブルに列を追加]の重複の可能性あり(http://stackoverflow.com/questions/39370797/core-data-add-a-column-on-a-table) – Wain

答えて

0

コードでは、自動軽量移行が要求されます。 の名前をに変更したい場合、そのような移行はその属性のデータを保持しません。他のすべてのデータは保持されます。コアデータには、古い属性を削除して新しい無関係な属性を追加することがあります。

属性の名前を変更し、その属性のデータを保持する場合は、自動軽量移行は使用できません。コアデータにデータを移行する方法を伝えるマッピングモデルを作成する必要があります。具体的には、古い属性名のデータが新しい属性名の使用に移行するように指示する必要があります。複数のバージョンのモードを設定したら、Xcodeでマッピングモデルを作成してこれを設定することができます。全体のプロセスは、Apple's guide to model migrationに記載されています。 Appleのコアデータバージョン管理と軽量移行の移行ガイドのセクション毎の

0

あなたはエンティティやプロパティの名前を変更する場合は、あなたが対応するプロパティまたはエンティティの名前に先モデルにリネーム識別子を設定することができますソースモデル。 Xcodeデータモデリングツールのプロパティインスペクタ(エンティティまたはプロパティのいずれか)を使用して、管理対象オブジェクトモデルの名前変更識別子を設定します。たとえば、次のことができます。 ... paintColorに車の色の属性の名前を変更し

enter image description here

関連する問題