1

最初に C ライブラリを直接使用して、iOS 2.0 でアプリを作成しました。次に、FMDB の使用に移りました (私にとってはずっと簡単です)。しかし今日では、データのフォールト、キャッシング、プリフェッチを管理するのが面倒になりすぎています。CoreData を使用すると、アプリの応答性が向上し、軽量になると確信しています (メモリに関して)。

CD ですべてをやり直すという長くて大変な作業を行う準備はできていますが、既存のデータを移行する必要があります。新しいオブジェクト (CDTrack、CDTrackPoint、CDSegment など) を使用して新しいモデルを作成し、Track、TrackPoint Segment などのオブジェクトにある既存のデータをこの新しいストアに移動することを検討しました。しかし、それは本当に賢明な考えでしょうか? 古いグラフを1つずつ複製するよりも良い方法はありますか?

4

1 に答える 1

2

あなたは基本的に正しい軌道に乗っています。

データを移行する必要がある場合は、アプリの起動時に実行される移行用の NSOperation を作成することになるでしょう。

アプリケーションによっては、通知を使用してメイン スレッド NSManagedObjectContext と通信して、その操作をバックグラウンドで実行できる場合があります (Core Data スレッド ルールに注意してください!)。

このデータを移行しないとアプリが意味をなさない場合は、データの移行中に進行状況を示すモーダル ビューを表示して、ユーザーに残りの待機時間をより適切に知らせることができます。

話しているデータの量によっては、Core Data と SQLite がこの種のことをどれだけ迅速に実行できるかに驚かれるかもしれません... 重要なのは、ユーザーに情報を提供し続けることです。アプリケーションの設計がサポートしている場合は、バックグラウンドで実行してください。UI の応答性を維持するために、必ずメイン スレッドから作業を行ってください。

楽しむ!

于 2011-01-19T00:56:27.147 に答える