UITableViewCellのパフォーマンス

UITableView の tableView:cellForRowAtIndexPath:indexPath からデータリクエストを飛ばしたりすると、パフォーマンスが著しく低下することがあります。
私はこちらのAPIの開発中に各セルからJSONデータをリクエストさせていたのですが、スクロールの際に引っかかるような動きがありました。
Rails(WEBアプリ)側のログを確認しながら動かしてみたところ、いちど画面から消えたセルであっても、再び表示されるときに再リクエストを飛ばしていることがわかりました。


ひとつの対処としては、予めデータを配列で取得してしまい、リクエストをその1回に抑えることです。
viewDidLoad 等のタイミングで配列arrayに取得し、tableView:cellForRowAtIndexPath:indexPath 内では [array objectAtIndex:[indexPath row]] として利用します。