0

ネイティブのiPhoneメッセージアプリと同様に、AcaniChatをコーディングして、時系列で並べ替えられた最後の50個のメッセージを返します。CoreDataに合計200のメッセージがあるとしましょう。

fetchOffset = 150&fetchLimit = 50を使用できることはわかっていますが(実際には、最後までフェッチしたいので、この場合はfetchLimitも必要ですか?)、最初にフェッチしなくても最後の50メッセージをフェッチできますか?メッセージは数えますか?たとえば、Redisを使用すると、fetchOffsetを-50に設定できます。

4

1 に答える 1

3

並べ替え順序を逆にして、最初の50を取得します。

編集

では、メッセージを時系列で表示するにはどうすればよいですか?NSFetchedResultsControllerを使用しています。– MattDiPasquale

それは今あなたの質問の一部ではありませんでした;-)

とにかく、FRCは直接使用されません。ビューコントローラは情報を提供するように求められ、次にFRCに求められます。簡単な計算を行ってセクション/行を変換し、逆の順序を取得できます。

また、FRC内のオブジェクトのコピーを含むが、ソート順が異なる2番目の配列を内部的に使用することもできます。それも簡単です。

より複雑ですが、より「学術的に興味深い」のは、カスタムフェッチパラメータを備えた個別のMOCを使用することです。

ただし、どちらかのパスを行き過ぎる前に、オブジェクトの数をクエリすることの何が問題になっているのかを知りたいと思います。実際にはかなり高速です。

私のアプリを殺しているのがボトルネックであるというInstrumentsからの証拠が得られるまで、私は可能な限り最も単純な解決策を推し進めていました。

于 2012-09-12T02:26:45.170 に答える