Как проверить, является ли ячейка tableview строкой или разделом в Swift?

В задаче C я проверял, как показано ниже

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  {
    if (!indexPath.row)  {
         NSLog(@"section");
    }  else  {
         NSLog(@"row");
    }
}

Как сделать то же самое со Swift?


person noviceDev    schedule 20.11.2017    source источник
comment
Просто переведите тот же код для swift. Найдите функции в документации Apple.   -  person Shamas S    schedule 20.11.2017
comment
Этот метод всегда вызывается для выбора строки; Ваш код Objective-C просто проверяет, выбрана ли строка 0.   -  person Paulw11    schedule 20.11.2017
comment
каждый раз, когда этот метод запускается, indexpath сообщит вам, какая строка раздела была нажата.   -  person Parv Bhasker    schedule 20.11.2017
comment
Я попытался перевести с помощью инструмента, который был переведен как if !indexPath.row. Получение ошибки компиляции. :( Не удается преобразовать значение типа 'Int' в ожидаемый тип аргумента 'Bool' попытался преобразовать в логическое значение, но результат не соответствует ожидаемому.   -  person noviceDev    schedule 20.11.2017
comment
Я думаю, вы путаете заголовки с разделами? Каждый indexpath имеет строку и раздел.   -  person Bruno    schedule 20.11.2017
comment
Вам нужно явно сравнить с 0 в Swift - if indexPath.row == 0   -  person Paulw11    schedule 20.11.2017
comment
Я думаю, что у вас здесь неправильная реализация Table View. Когда вы выбираете ячейку, она всегда вызывает didSelectRowAtIndexPath. Возможно, вы обрабатываете первую ячейку как заголовок и имеете другую ячейку, если это так, просто проверьте indexPath.row == 0   -  person GoodSp33d    schedule 20.11.2017
comment
@ GoodSp33d Понял свою ошибку. :) Спасибо!!   -  person noviceDev    schedule 20.11.2017
comment
@ Paulw11 это сработало!! Спасибо   -  person noviceDev    schedule 20.11.2017


Ответы (2)


indexPath.row это не означает раздел. Вы можете получить индекс раздела, написав indexPath.section. Просто подумайте о двумерном массиве. Каждый раздел имеет свою строку. Просто подумайте об этом. Надеюсь, поможет.

person Riajur Rahman    schedule 20.11.2017

Swift не имеет автоматического преобразования целых чисел в логические значения. Вам нужно сделать тест явным: if indexPath.row != 0 { ... }

person Gereon    schedule 20.11.2017