1

重複の可能性:
通常の sqlite3 データベースをコア データに移行しますか?

既存の sqlite db をコア データにロードすることは可能ですか? 問題に直面しています。実際、コア データ サンプルには、テーブル名に z プレフィックスが付いたデータベースやその他の属性が含まれていることがわかりました。そのzの意味は何ですか?また、このブログで見ましたhttp://ablogontech.wordpress.com/2009/07/13/using-a-pre-populated-sqlite-database-with-core-data-on-iphone-os-3-0/コア データを使用してデータベースを作成し、それをロードします。これは回避策ですが、データをコア データにロードする適切な方法ではありません。テーブルで多くの更新とクエリを実行する必要があります。sqlite を直接使用するか、コア データを使用するかを提案してください。コア データの場合、既存の sqlite ファイルをコア データにインポートする最良の方法を提案してください

4

3 に答える 3

7

Core Data が SQLite を使用しているという事実は、実装の詳細であるはずです。実際、Core Data のドキュメントでは、Core Data の外部にあるデータベース自体に決してアクセスしてはならないと具体的に述べています。

同様に、Core Data の下に独自のデータベースを強制することは想定されていません。

既存のデータベースを Core Data にインポートする場合は、既存のデータベースの各エントリを反復処理するコードを記述し、対応するオブジェクトを作成して Core Data に挿入する必要があります。

FWIW、Z_ スタッフは、データベースのコア データの装飾です。

データベースをいじらないでください。さて、データベースを使っていくつかのことを実行できることがわかりましたが、専門家でない限り実行すべきではありません。

于 2012-09-07T13:18:13.460 に答える
3

既存のデータを Core Data にプリロードする方法については、Ray Wenderlich のチュートリアルをご覧ください 。3部構成のチュートリアルです。試してみます。

于 2012-09-07T05:43:29.670 に答える
0

ここでのアドバイスをよく聞いてください。内部データベースが装飾されていることを考えると、動作する可能性を半分にするために、少なくとも独自のデータベースで同じことを行う必要があります。

前述のように、たとえば、タスク用に作成された 1 回限りのコードを使用して、コード ベース内にインポートする必要があります。そうすれば、ios がすべてをネイティブに処理してくれます。

于 2012-09-07T14:43:52.687 に答える