Не удается вызвать значение нефункционального типа ‘[Строка]’

#arrays #swift #string #uitableview #cell

#массивы #swift #строка #uitableview #ячейка

Вопрос:

Я хочу установить текст метки в ячейке прототипа в строку, которая хранится в массиве.

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "unitOptionCell", for: indexPath)

    cell.textLabel?.text = currentConvertion.availableUnits(indexPath)

    return cell
}
  

Массив следующий:

 var availableUnits: [String] {
    switch category {
    case .firstCategory:
        return ["test 1", "test 2", "test 3"]
    case .secondCategory:
        return ["test 4", "test 5", "test 6"]
    case .thirdCategory:
        return ["test 7", "test 8", "test 9"]
    }
}
  

в чем ошибка?

Ответ №1:

Если вы используете круглые скобки, компилятор интерпретирует, что вы пытаетесь выполнить вызов функции. Вы должны использовать скобки для доступа к элементам вашего массива, что-то вроде:

 cell.textLabel?.text = currentConvertion.availableUnits[indexPath.row]