Невозможно удалить из очереди ячейку с идентификатором, но только при нажатии поиска - PullRequest
0 голосов
/ 20 декабря 2018

У меня проблема с ячейкой UITableView: «не удалось удалить из очереди ячейку с идентификатором textCell», что, как я знаю, является распространенной ошибкой, и я прочитал несколько записей здесь.Странно то, что это работает, когда я впервые рисую стол.Это не сбой, пока пользователь не коснется панели поиска.Я проверил данные, когда ячейка снимается с очереди, и различные переменные заполняются, поэтому данные есть.

Я использую раскадровки, поэтому мне не нужно регистрировать ячейку, что является одним из распространенных ответов, которые я видел.Опять же, это подтверждается тем фактом, что ячейка сначала рисуется правильно.Первоначально я использовал dequeueReusableCell (withIdentifier :), но я также пытался dequeueReusableCell (withIdentifier: for :), но безрезультатно.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let ident = idList[indexPath.row]
    var entryText = db.getText(ident)
    let entryDate = db.getDateTimeLong(ident)
    let comments = db.getComments(ident)

    ...

    guard let cell = tableView.dequeueReusableCell(withIdentifier: "textCell", for: indexPath) as? TextTableViewCell else {
        fatalError("NO SUCH CELL")
    }
    cell.dateLabel.text = entryDate
    cell.textView.text = entryText
    return cell
}

func updateSearchResults(for searchController: UISearchController) {
    idList = db.textSearch(searchController.searchBar.text ?? "")
    tableView.reloadData()
}

Есть идеи, где я ошибаюсь?

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