2

Android アプリと iOS アプリの間でデータを共有したいと考えています。このディレクトリ ~/Library/Application Support/iPhone Simulator/User/Applications//Documents/.sqlite からコア データ sqlite をエクスポートしました。

これでいいと思います。sqlite ブラウザで sqlite ファイルを開こうとすると、問題が発生します。「sqlite 3ファイルではありません」というエラーが表示されるためです。そのcoredata sqliteファイルをAndroidにインポートすることを考えていました。

しかし、私の質問は、iOSコアデータをAndroid sqliteにインポートする適切な方法は何ですか?

4

3 に答える 3

1

Core Data の SQLite ストアは通常の SQLite ファイルであるため、インポートで何か問題が発生しています。ただし、Core Data がそのエンティティから SQLite ストアに作成するマッピングは、明示的に実装に依存するため、仕様の一部ではないため、文書化されていません。Core Data のバージョン間での変更が許可されているため、リバース エンジニアリングが必ずしも安全であるとは限りません*。

iOS 5 の時点で、本当に Core Data と SQLite を使用したい場合は、独自のNSIncrementalStoreを作成することができます。これにより、Core Data から SQLite への任意のマッピングを課すことができます。欠点は、ほとんど文書化されていないことです。

(*)そこを突っ込むと役立つ場合もありますが。コマンドライン引数 -com.apple.CoreData.SQLDebug 1 を指定して、Core Data が実行するすべての SQL コマンドをコンソールにダンプさせることができます。その後、SQLite で永続ストアを開いてチェックアウトすると、パフォーマンス診断に役立ちます。正しいもののインデックスを作成していることを確認するためのクエリ プラン。

于 2013-05-31T19:21:34.260 に答える
0

iOS SQLite ファイルをエクスポートしていないので、どのようにエクスポートするのかわかりません。たぶん、ファイルバイトコードを分析する必要がありますか? これを見てください http://www.sqlite.org/fileformat.html

于 2013-05-29T09:32:40.540 に答える