ここ数日、バッチ サイズが 20 の NSFetchedResultsController が、フェッチが終了した直後にすべてのオブジェクトで常にフォールトする (つまり、メモリにロードする) 理由について、謎を解こうとしてきました。 ~ 20 秒かかります。
私のheightForRowAtIndexPathでは、高さはフェッチされた各オブジェクトのNSStringプロパティの長さに基づいていたため、テーブルをリロードすると、テーブルに2000行がある場合、高さは行ごとに計算されますオブジェクトのテキスト プロパティにアクセスするため、最初に 2000 個のオブジェクト (20 サイズのバッチ) でエラーが発生し、永遠に時間がかかります。(行の高さが最初に計算されることを知りませんでした)。
問題は、バッチ サイズが 20 のフェッチ結果コントローラーがある場合、行の高さがオブジェクトのテキスト プロパティに基づいている場合です。実際にメモリにロードされた場合、高さを計算するための回避策は何ですか?
私のオプションは何ですか?