2012-11-15 5 views
18

誰も5つの設定方法のそれぞれについて説明できますか?5 Magical Recordのセットアップ方法の違いは何ですか?

(void) setupCoreDataStack; 
(void) setupAutoMigratingDefaultCoreDataStack; 
(void) setupCoreDataStackWithInMemoryStore; 
(void) setupCoreDataStackWithStoreNamed:(NSString *)storeName; 
(void) setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName; 

各自が何をして、それぞれのユースケースは何ですか?

答えて

27
setupCoreDataStack 

MagicalRecordを使い始めるときに使用します。これは、メソッドが示すように、デフォルトのコアデータスタックを設定します。スタックの断片はよく分かっていて、NSPersistentStore、NSPersistentStoreCoordinate、NSManagedObjectModel、およびデフォルトのNSManagedObjectContextで構成されています。これらのそれぞれの少なくとも1つは、コアデータが機能するように、インスタンス化して適切に構成する必要があります。 MagicalRecordが// /ライブラリ/ Application SupportにあるSQLiteの永続ストアを使用してスタックを構成するには、この単一の方法を提供する。sqliteの

setupAutoMigratingDefaultCoreDataStack 

するときは、バージョンモデルを、あなたのデータを移行する必要があります。このメソッドは前の(上の)メソッドと同じことを行いますが、自動移行も有効にします。

setupCoreDataStackWithInMemoryStore; 

ユニットテストを書いているときなど、アプリが終了してもデータが消えてしまうことがあります。このメソッドは、CoreDataスタック(前述)の設定も行いますが、SQLiteストアの代わりに、システムメモリ(RAM)に永続ストアを作成します。

setupCoreDataStackWithStoreNamed:(NSString *)storeName 

データが格納されているファイル名をカスタマイズすることがあります。この方法では、これは、

setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName 

即ちコアデータスタックをセットアップし、特定の場所にSQLiteのストアを配置し、第一、その代わり.sqliteの、ストアがstoreName.sqlite

命名さ 同じしません上記の方法と同じですが、自動移行も可能です。モデルのバージョンを作成し、単純に有効にする必要のある簡単な移行を行うときは、この操作を行う必要があります。

あなたはMagicalRecordにxcdatamodeldファイルを関連付けるにはどうすればよいApple's Core Data Reference Documentation

+1

にコアデータの移行の詳細を読むことができますか? MagicalRecordは「外部レコードファイルに保存」などのxcdatamodeld属性を尊重しますか? – zakdances

+1

デフォルトでは、magicalRecordはnilパラメータとともにmergedModelsFromBundle:メソッドを使用します。これはXcodeによって提供される(恐ろしい)ボイラープレートコードにもあります。これは自動的にあなたのためにそれを把握します。必要なときにモデルファイルを指定するための追加のヘルパーがあります(単体テストはこれが必要な別の一般的な場所です)。 – casademora

+0

まだ少し混乱しています... mergedModelsFromBundleは自動的にxcdatamodeldファイルのプロジェクト構造をスキャンしますか? xcdatamodeldが複数ある場合はどうなりますか?それらのxcdatamodeldファイルで宣言したエンティティ(およびその属性)は、MagicalRecordのサブクラスであるNSManagedObjectsと一致する必要がありますか? – zakdances

関連する問題