1

専門家の皆様、こんにちは... 私は初めての iPad アプリを作成しておりUIManagedDocument、アプリの起動時に XML ファイルを解析して Core Data DB を作成するベータ版を作成しています。ただし、これには時間がかかるため、一度オフラインにして、初期データをアプリ バンドルに直接含めたいと考えています。言うまでもなく、私はそれを機能させようとして壁にぶつかっています。

私は最初にコマンド ライン ユーティリティ アプローチに従いました。ここを参照してください。これは、.sqlite ファイルをインポートしてメソッドを編集しようとするまで機能しpersistentStoreCoordinatorました。モデルをロードするためのコードを記述する必要はありません。Mac OS X でドキュメント ベースのアプリケーションを使用している場合、アプリケーションのモデルを検索してロードするタスクを が管理します。"UIManagedDocumentpersistenStoreCoordinatorAppDelegateNSPersistentDocument

次に、この StackOverFlow の質問UIManagedDocumentに従って、シミュレーターでアプリの動作中のバージョンからをコピーしようとしまし た。これはまさにここで尋ねられた問題ですが、その質問に対する回答は、私が持っていないメソッドの修正にすぐに戻ります。persistentStoreNSPersistentStoreCoordinator

NSFetchRequestアプリバンドルからドキュメントディレクトリにコピーしたコードにテストを追加したので、アプリバンドルが空でUIManagedDocumentあることがわかりました。UIManagedDocumentファインダーからドラッグ アンド ドロップし、ターミナルを使用して対処しようとしました。persistentStore ファイルは正しく移動され、サイズは 106 KB ですが、アプリに空の DB が表示されます。

これを機能させる方法について何か提案はありますか?

configurePersistenStoreCoordinatorForURL:ofType:modleConfiguration:StoreOptions:error:クラス リファレンスに従って使用する必要がありUIManagedDocumentますか?

メソッドを変更できるように、一部のコア データ メソッドを AppDelegate に追加する必要がありpersistenStoreCoordinatorますか? その場合、このメソッドは他に何をする必要がありますか?

コマンドラインユーティリティが作成した、または使用しているように見える.sqlite DBを使用する方が良いpersistentStore UIManagedDocumentですか?

4

1 に答える 1

0

次の方法で永続ストア コーディネータにアクセスできますparentContext

document.managedObjectContext.parentContext.persistentStoreCoordinator

または、コア データ スタックの構築時に永続ストアを構築するメソッドにアクセスできないというだけの場合、これはその目的のために意図されたフックのように見えます (言及したように):

オーバーライドconfigurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:して、永続ストアの読み込みまたは作成をカスタマイズします。

しかし、ドキュメンテーションでのそのメソッドの議論は、何をすべきかをうまく説明していません。おそらく、それをオーバーライドして、スタック内にまだ作成されていないオブジェクトと作成されていないオブジェクトを確認できます。設定する親コンテキストに初期化されたコーディネーターがアタッチされている可能性があります。同様の名前のメソッド on のドキュメントNSPersistentDocumentはこのようになっているので、おそらくそうUIManagedDocumentです。

于 2012-07-15T07:30:00.247 に答える