2011-07-19 6 views
0

コアデータを学習しています。新しいオブジェクトを作成し、値を割り当ててmanagedContext(insertNewObjectForEntityForName)に保存するすべての例を理解しています。 しかし、既に他の場所(モデルカテゴリ)にオブジェクトを作成している場合はどうなりますか?この場合、私はこのモデルに現在のコンテキストを割り当てて保存するだけです。既存のモデルをCoreData DBに保存する

メモリ内モデルを取得し、保存できるようにコンテキストに割り当てるコマンド/アプローチは何ですか?

答えて

1

、あなたのデータを管理するためのコアデータを使用したい場合は、あなたがする必要があります:あなたのモデルクラスを変更し、適切なモデル記述(.xcdatamodeldファイル)

  • を作成

    • (ES )彼らはNSManagedObject

    • から継承されるように、あなたのNSManagedObjectのサブクラスの1

    • にモデルの説明に、各エンティティのための「クラス」を設定
    • これはすべての非常に行う可能なのですが、あなたが持っているまで、私はあなたがそれを試みることをお勧めしません

    • など、データをフェッチし、コアデータ・スタックを作成および管理するために、あなたのアプリに

    をコードを追加します。コアデータの理解とプロジェクトでの採用理由あなたの質問に明快さがないことは、あなたがまだそこにいないことを示すかもしれません。最初からコアデータを使用する小さなプロジェクトに取り組むことでメリットが得られます。

    データを保存するだけであれば、コアデータだけではできないことがわかります。データを保存するもっと簡単な方法は、データモデルにNSCodingプロトコルを採用し、NSKeyedArchiverを使用してデータを保存することです。 Archives and Serializations Programming Guideから全文を入手してください。他にもこれを行う方法がありますが、NSKeyedArchiverは良い出発点です。

  • +0

    返信いただきありがとうございます、私はあなたが言及した手順を完了しました。私がやっていなかったのは、空のインスタンスを「作成」することでした。代わりに新しいモデルインスタンス(通常のクラスのような)を割り当てていましたが、保存するコンテキストがありませんでした。私は現在のインスタンスにコンテキストを添付するコマンドを探していましたが、CoreDataを使って*正しい方法で空のエンティティをフェッチ/作成し、それを変更する方法を学びました。 – beeudoublez

    0

    NSManagedObject(およびそのサブクラス)のみをCoreDataに保存することができます。 コンテキストNSManagedObjectContextの場合を除き、NSManagesObjectは作成できません。

    あなたの言うことは混乱しています。非CoreDataモデルオブジェクトはありますか?

    関連する問題