2009-06-24 14 views
1

私は、非常に単純なデータをコアデータとiPhone用のコンパニオンモバイルアプリをSQLiteに保存するデスクトップMac OS X Appを開発しています。デスクトップアプリケーションからデータを読み込むだけです。モバイルアプリでSQLiteデータベースを読み込むと、同じ管理オブジェクトモデルを共有しますが、データの移行には数秒かかります。 SQLiteファイルのサイズに比例して表示されるので、この長い待ち時間を避けたいと思っています。コアデータの移行は本当に遅いですが、なぜそれはまったく起こりますか?

同じマネージドオブジェクトモデルのデータがまったく移行する必要があるのはなぜですか?

マイグレーションを回避する方法を知っている人はいますか?

+2

どのように移行されているのですか?ダイアログが表示されますか? 明示的に有効にしない限り、移行は行われません(「コアデータのバージョン管理と移行ガイド」を参照)。 モデルが変更されていない場合は、移行する必要はありませんので、何か他のことが起こっている可能性があります。 – Hunter

+0

良い質問です。それ以外の場合はストアをロードしないため、有効にしています。私はSharkを使って長いロードタイムをプロファイリングしているので、移行しているとはかなり確信しています。 – tmh

答えて

0

私はこの問題の原因を発見しました。それはおそらく非常に明白ですが、他の誰もこのミスを犯してくれることを期待しています。

私は2つの異なるマネージドオブジェクトモデルをプロジェクトに持っていました。複数のデータを持っていると、コアデータがどのデータがどのMOMと一致するかを把握するために移行を試みるように見えます。

解決策として、モデルを手動でマージして、両方のデータソースを同じMOMで表すことができました。

関連する問題