2011-06-21 7 views
1

iPhoneアプリケーションのコーディングを開始してクラス名にプレフィックスを追加していないので、間違いがあります(カテゴリと呼ばれるCoreDataクラス)。プロジェクトは、Xcodeの最近のアップデートまでうまく構築され、今は間違いを認識しています。アプリケーション更新を許可しながらCoreDataクラスの名前を変更する

更新後に稼働中のシステムを維持しながらCoreDataクラスの名前を変更できますか? 新しいバージョンをDatamodelに追加してクラスの名前を変更すると、Appは更新されますが、古いテーブルが削除され、新しい(空の)テーブルが作成されたようです。当然のことながら、すべてのリンクは壊れています。変更を加えながらデータを維持したいと思います。

Java EEでは、正しく覚えていればテーブル名を覆すことができます。そのため、古いクラス名を使用してテーブルに名前を付けることができます。 CoreDataでこのような可能性はありますか?

ありがとうございます!私はフィールドを壊すすべてのアプリなしでDBを更新する方法を見つける必要があります。

答えて

3

は実際には、私はAppleが非常によく文書化:

を使用すると、エンティティまたはプロパティの名前を変更する場合は、 あなたは 対応するプロパティまたはエンティティの名前に に先モデルの名前を変更する識別子を設定することができますソースモデルの 通常は、 Xcodeデータモデリングツール( NSEntityDescriptionまたは NSPropertyDescriptionオブジェクト)を使用して、 の名前を変更する識別子を設定します。 Xcodeの名前変更識別子は、詳細ペインのユーザー情報ペイン 、バージョンハッシュ修飾子の下の ( コアデータのXcodeツールのブラウザビューを参照してください)の下にあります。 (Mac OS X Developer Library

実際、私にとっては、Classnameを変更してモデルの残りの部分だけを残すように動作するようです。

+0

そのドキュメントは、エンティティ自体の名前を変更することにのみ関連し、基礎となるクラスには関連しませんか?したがって、現在 "Car"クラスにマップされているCoreDataモデルに "Car"エンティティがあり、関連するクラスの名前を "MYCar"( "Car"というエンティティスチルを残して)に変更したい場合、これは当てはまるとは思わない。私はモデルのクラス名を変更するだけでそれがうまくいくと思います。 –

関連する問題