エンジニア開発記エンジニア開発記HomeArchives2011-11-25CoreData+TableViewでスクロールが遅い時の対策CoreData+TableViewのときFetchResultsControllerを使います。CoreDataをつかっているから、FetchResultsControllerをつかっているから絶対にTableViewがかくかくしないなんてことはありません。各オブジェクトのデータ量によってはスクロールがかくかくしてしまいます。そのカクカクの対策方法です。単純にCoreDataからデータをもって来るときにデータ量が多いのが原因です。一つ一つのManagedObjectのデータ量が多いという意味です。する原因は曲の数ではなく、それぞれの曲の音データの容量が大きいことです。曲自体の音データは非常に重たいですが、TableViewに表示するときはその音データまでロードする必要はありません。曲のタイトル、アーティストがわかれば十分なはずです。CoreDataでは同じEntityのデータを別々に分けてロードする、という手法が取れません。曲の音データとタイトル等の情報を分けて保存してあげます。データ量が多くてロードするのに時間がかかるカラムのみ、べつのEntityにしてしまうのです。そのあとで本当に必要になったときのみ重いデータをロードする、といったことができるようになります。注意していきたいですね。