これを行うと、はるかに高速に動作するようです:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
JHomeViewCell *cell = (JHomeViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[JHomeViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
cell.cellContent.thumbnailCache = self.thumbnailCache;
}
Entry *entry = [self.resultsController objectAtIndexPath:indexPath];
if (cell.cellContent.entry != entry) {
[cell.cellContent setNeedsDisplay];
}
}
問題は、エントリが編集されたときにセルが変更されないことです。セルのすべての要素をチェックして、それらが異なるかどうかを確認できますが、これを行うより良い方法はありますか? セルが表示されるたびに drawrect を呼び出すと、アプリの速度が低下し、不要に見えます。