Условное приведение от UITableViewCell к UITableViewCell всегда успешно - PullRequest
0 голосов
/ 19 октября 2018

Когда я компилирую свое приложение, я получаю предупреждение и не знаю, как это исправить или скрыть.Условное приведение из UITableViewCell к UITableViewCell всегда завершается успешно

Это моя часть кода, где появляется предупреждение.

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return arrayPDF.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "MyCellPDF", for: indexPath)
        as? UITableViewCell else { return UITableViewCell() }

    cell.textLabel?.text = arrayPDF[indexPath.row] + ".pdf"
    return cell
}

Эта часть моего кода генерирует предупреждение.

as? UITableViewCell else { return UITableViewCell() }

Все работает нормально.Я застрял.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вы использовали guard .. else {}, поэтому он должен быть необязательным, я думаю, что функция, которая вам нужна, является первой, а не последней: open func dequeueReusableCell (withIdentifier identifier: String) -> UITableViewCell?// Используется делегатом для получения уже выделенной ячейки вместо выделения новой.

@available(iOS 6.0, *)
open func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell // newer dequeue method guarantees a cell is returned and resized properly,

Вы можете исправить одну из них следующим образом:

let cell = tableView.dequeueReusableCell(withIdentifier: "MyCellPDF", for: indexPath)

ИЛИ

guard let cell = tableView.dequeueReusableCell(withIdentifier: "MyCellPDF") else { return UITableViewCell() }
0 голосов
/ 19 октября 2018

По умолчанию tableView.dequeueReusableCell(withIdentifier: "MyCellPDF", for: indexPath) возвращает объект UITableViewCell.

Итак, когда вы делаете:

guard let cell = tableView.dequeueReusableCell(withIdentifier: "MyCellPDF", for: indexPath) as? UITableViewCell else { return UITableViewCell() }

Вы приводите объект UITableViewCell к UITableViewCell,XCode просто говорит вам, что это бесполезно.

Если ваш класс UITableViewCell, вы можете просто использовать:

let cell = tableView.dequeueReusableCell(withIdentifier: "MyCellPDF", for: indexPath)

Если это пользовательский класс, вы можете использовать охрану, нозамените деталь as? UITableViewCell на as? MyCustomTableViewCellClass.

С уважением,

IMACODE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...