我是Swift和iOS的新手,我希望获取一系列URL字符串并在UITableViewCell中填充ImageView,我已经为其创建了一个名为MyTableViewCell的类。
它崩溃了,我收到了错误:
"fatal error: unexpectedly found nil while unwrapping an Optional value"
当行imageTableView.datasource = self
运行时,我可以在viewDidLoad()中看到。
我在视图中设置数据和委托如下:
override func viewDidLoad() {
super.viewDidLoad()
imagesTableView.dataSource = self
imagesTableView.delegate = self
}
下面,imageUrls
是一个字符串数组。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: MyTableViewCell = tableView.dequeueReusableCell(withIdentifier: "myTableViewCell", for: indexPath) as! MyTableViewCell
cell.imageView.sd_setImage(with: URL(string: imageUrls[indexPath.row]))
return cell
}
我在课堂上有一个电池插座:
@IBOutlet var imagesTableView: UITableView!
我的问题是,使用swift 3和SDWebImage执行此操作的正确方法是什么,以及为什么/ where images / images来自imagesTableView的nil值?
值得注意的是,我还尝试将一些字符串URL值硬编码到imageUrls中,以确保这不是问题(我得到了与硬编码值相同的错误)。
答案 0 :(得分:1)
事实证明,虽然我连接了一个插座,但它以某种方式丢失了参考 - 我删除了整个tableview和子视图并重新创建并连接它们,错误消失了。当我先前拖拽出口时,必定会发生一些时髦的事情。