3

私のアプリでは、EKEvents のリストを表示しています。各セクションにそれぞれの日が含まれる UITableView で、1 か月のすべてのイベントを表示したいと考えています。まあ、これはうまくいき、必要なすべてのデータを取得しますが、フェッチは非常に遅いです。

問題は、複数の日に広がるイベントにあります。

  • 11 月 10 日から 11 月 17 日まで休暇を取るとします。
  • 私の検索述語には、11 月 1 日の startDate と 11 月 30 日の endDate があります。
  • 私はenumerateEventsMatchingPredicateまたはeventsMatchingPredicateを実行しますが、どちらも遅いです。

その見返りに、11 月に開催されるすべてのイベントと私の休暇の配列を受け取ります。しかし、私の休暇は 1 つの EKEvent オブジェクトにすぎません。したがって、月ごとのイベントのリスト ビューを表示する場合、11 月 10 日に 1 回だけ表示されますが、わかりやすくするために、10 日、11 日、... 17 日の各日に表示します。

だから私がやっていることは、1 か月の毎日を反復してフェッチを行うことです :-/ この方法で、特定の日に発生するイベントの正しい量を取得しますが、... とても複雑に感じます。

私はすでにフェッチをdispatch_asyncに入れているので、フェッチはUIをブロックせず、フェッチが終了するとtableViewがリロードされ、セルが再描画されます。しかし、まだ時間がかかります。ユーザーフレンドリーな時間はありません。

それらの検索をどのように実行しますか? 検索を高速化するためのヒント、おそらく小さなコード スニペット、または正しい方向に私を向けることができます!?

私の質問は明確ですか?:-/

ありがとう - マーティン。

4

1 に答える 1

0

特に繰り返しイベントが多い場合、フェッチは遅くなります。私が自分のアプリで行ったことは、一度だけフェッチし、丸一日の複数日にわたるイベントをチャンクに解析することです。イベントを抽象化しました: テーブル ビューでセクション タイトルとして使用できる NSString プロパティを持つ "date" クラスを作成し、その ivar の 1 つは一致する "イベント" を持つ配列です。「イベント」は EKEvents ではなく、EKEvents から必要なプロパティをコピーする私のクラスです。複数日にわたる 1 日 EKEvent から、対応する「イベント」を作成します。解析は非常に高速です。速度が低下するのは、フェッチされた繰り返し EKEvents からプロパティを取得するときです。

于 2011-12-01T18:58:55.530 に答える