Se você estiver usando restrições autoLayout e UITableViewAutomaticDimension, este erro não é um problema errôneo a ser descartado substituindo sua altura no código. Isso significa que determinar a altura da célula automaticamente não está funcionando porque você não tem as restrições verticais necessárias.
Se você é como eu e estava recebendo este erro e precisava de ajuda para identificar qual célula estava gerando o erro, você pode adicionar a seguinte linha logo antes do retorno de seu método 'heightforRowAtIndexPath'.
NSLog(@"Section %ld Row %ld", (long)[indexPath section], (long)[indexPath row]);
Isso imprimirá uma longa lista de seções e linhas, mas o erro aparecerá imediatamente após a célula específica que está causando o erro, e você pode identificar rapidamente qual célula está causando o problema e corrigir suas restrições de acordo. Isso é particularmente útil para células estáticas. Substituir a altura por um número inserido manualmente funcionará se você não estiver usando autoLayout e alturas de células automáticas, mas irá essencialmente desativar esses recursos, o que é uma solução muito pobre se for algo que você está tentando utilizar.
Se você não estava usando o método 'heightForRowAtIndexPath' anteriormente, mas deseja depurar esse erro sem desfazer a configuração UITableViewAutomaticDimension, basta adicionar ao seu código:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"Section %ld Row %ld", (long)[indexPath section], (long)[indexPath row]);
return UITableViewAutomaticDimension;
}