0

データを含む既存のデータベーススキーマを操作する必要があります。指定されたSQLiteファイルからiOSデータベースにデータをフェッチして、作成するコアデータとモデルを操作することはできますか?そうでない場合、あなたの提案は何でしょうか?既存のデータをデバイスデータベースに転送する必要があるので、アプリで使用できます。

ありがとう。

4

2 に答える 2

1

データベースの構造が事前にわからない場合は、コアデータを使用しないことをお勧めします。Appleは、事前にデータ構造を設定できるようにCoreDataを設計しました。次に、その構造をアプリケーションで使用します。しかし、任意のSQLiteテーブル構造を取得し、それを事前設定されたコアデータ構造に適合させることは、せいぜい困難になります。不可能だとは言いませんが、それを機能させるために必要な抽象化のレベルがあれば、SQLiteを使用する方がはるかに現実的です。(C関数ではなく)Objective-Cを使用してデータにアクセスするには、FMDBなどのデータベースラッパーを追加することをお勧めします。このように、SQLiteファイルを適応させる必要はありませんが、代わりにファイルを直接使用します(または既存のSQLiteファイルにインポートします)。

構造を事前に知っていれば、そうです。SQLiteからコアデータにデータをインポートするのはかなり簡単です。まず、Appleのツールを使用してCoreDataでその構造を再作成する必要があります。実行時に、SQLiteデータベースから情報を取得してCoreDataに追加できます。まだ読んでいない場合は、AppleのCore Dataプログラミングガイドを読んで、方程式のCoreData側を理解してください。SQLiteデータベースへのアクセスにはFMDBをお勧めします。これにより、SQLiteからのデータの取得がはるかに簡単になります。

また、SQLiteデータベースが変更された場合(または変更される可能性がある場合)、変更の頻度によっては、CoreDataを回避する方が適切な場合があることも指摘しておきます。この理由は単純です。CoreDataをSQLiteデータベースの変更に適応させるには、変更を加えてから、アプリに更新を発行する必要があります。これにより、アプリがSQLiteデータベースに完全に同期されない、またはエラーが発生する可能性がある数日(おそらく数週間)が発生する可能性があります。Core Dataは多くの点で優れていますが、データ構造を適応させることはその1つではありません。

于 2012-06-18T15:04:09.217 に答える
0

質問を理解するのに少し苦労していますが、これだと思います:

CoreDataの外部で作成されたsqlite.dbでCoreDataを使用するにはどうすればよいですか?

それがあなたの質問なら、ここにいくつかのリンクがあります

http://ablogontech.wordpress.com/2009/07/13/using-a-pre-populated-sqlite-database-with-core-data-on-iphone-os-3-0/

http://www.raywenderlich.com/980/core-data-tutorial-how-to-preloadimport-existing-data

しかし、他の答えのように、Appleはこれに反対することをお勧めします

于 2012-06-19T21:09:20.283 に答える