Actually the value of `i` changes in this loop as long as the current `i` can't be selected. So the value of `[_delegate tableView:self shouldSelectRow:i]` is not constant.