1

NSManagedObjectsこれは少し変ですが、Core Data 以外の配列を格納したいのです。

Core Data は、モデルのすべてのプロパティと関係を管理しています。そのような関係の 1 つに、すべての an がありAuthorますBooks。同じリストを特定の順序で知っていると便利な場合があるため、booksByDate(たとえば) NSManagedObjectAuthor に追加しました。

ソート記述子は高価であることが判明したため、iVar on を使用してキャッシュを実装しましたAuthor。これは、私が経験していた遅延のある UI の問題を解決するのに大いに役立ちました。しかし、キャッシュは最初にロードされた後にしか役に立たなかったので、アプリケーションが起動したときに、それぞれAuthorにキャッシュするように指示しbooksByDateます。これにより、起動時間が数秒長くなりますが、アプリが実行されるとパフォーマンスが大幅に向上します。

その起動時間を短縮したいと思います。私が実験している領域の 1 つは、それぞれAuthorのキャッシュを何らかの形で保存することbooksByDateです。起動時にAuthor、コストのかかるソート記述子を使用してキャッシュを生成するようにそれぞれに指示する代わりに、格納されている各キャッシュをそれぞれの correct に渡すことができますAuthor

これらのキャッシュを保存して、実行間で保持するにはどうすればよいですか?

4

1 に答える 1

0

各本にインデックス メンバーを用意するのが最善の方法だと思います。新しい本を挿入するときは、本の著者リストをループして、その本のインデックスに適切な値を設定します。このように、書籍を要求するたびに、そのインデックスに基づいて並べ替えることができます。これは、日付で比較するよりもはるかに高速です。

于 2012-10-22T22:20:30.770 に答える