CustomTableViewCell ничтожный ноль? - PullRequest
0 голосов
/ 19 апреля 2019

У меня та же проблема, что и здесь Но я не смог заставить их решение работать.

Каждый раз, когда это выполняется:

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = commentTableViewCell()

    print("called T")
    if arrayOfComments.count != 0 {
        do {
            let url = URL(string: (arrayOfComments[indexPath.row].user.profileImageUrlString)!)
            let imageData = try Data(contentsOf: url!)
            let image = UIImage(data: imageData)

            cell.dateOfComment.text = "testText"//crash here
        } catch {
            print(error, ": Failed in do block converting image")
        }
    }

    return cell
}

Я получаю:

Поток 1: фатальная ошибка: неожиданно обнаружен ноль при неявном развертывании необязательного значения

CustomCell:

 import UIKit

class commentTableViewCell: UITableViewCell {

    @IBOutlet weak var dateOfComment: UILabel!
    @IBOutlet weak var commentText: UILabel!
    @IBOutlet weak var profImage: UIImageView!
    @IBOutlet weak var username: UILabel!

}

1 Ответ

1 голос
/ 19 апреля 2019

Установите идентификатор для вашей ячейки и замените

let cell = commentTableViewCell() // this loads the cell class without attached IB outlets 

на

let cell = tableView.dequeueReusableCell(withIdentifier:"cellId", for: indexPath) as! commentTableViewCell

Также этот

let imageData = try Data(contentsOf: url!)

блокирует основной поток, рассматривающий использование SDWebImage


Для ячеек Xib в viewDidLoad

tableView.register(UINib(nibName: "commentTableViewCell", bundle: nil), forCellReuseIdentifier: "commentCell")

И у вас должно быть

commentTableViewCell.swift

commentTableViewCell.xib

Для ячеек-прототипов

просто установите идентификатор без регистра, как это делается автоматически в этом случае

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