【问题标题】:Swift - Setting cell customImageView.image to nil causes errorSwift - 将单元格 customImageView.image 设置为 nil 会导致错误
【发布时间】:2015-07-03 08:43:30
【问题描述】:

我目前正在开发一个应用程序的新闻页面,我们在尝试将单元格的 customImageView.image 设置为 nil 时遇到了一个问题,以确保单元格在加载自己的图像时不会加载另一个单元格的图像:

cellForRowAtIndexPath (tableView)

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    var requestImg: Alamofire.Request?

    var article : NewsItem
    article = filteredArticles[indexPath.row]
    let imageUrl = NSURL(string: article.image)

    if imageUrl == nil || article.image.isEmpty { newsCellIdentifier = "NewsCellNoImage" }
    else { newsCellIdentifier = "NewsCell" }

    let cell = self.tableView.dequeueReusableCellWithIdentifier(newsCellIdentifier) as! NewsCell

    if (imageUrl != nil || !article.image.isEmpty) {

        cell.customImageView.image = nil // < ISSUE HERE
        requestImg?.cancel()

            requestImg = Alamofire.request(.GET, article.image).responseImage() {
                (request, _, image, error) in
                if error == nil && image != nil {
                    cell.customImageView.image = image
                }
            }
    }

    cell.titleLabel.text = article.title
    cell.categoryLabel.text = article.category

    return cell
}

NewsCell.Swift

class NewsCell: UITableViewCell {

@IBOutlet var titleLabel: UILabel!
@IBOutlet var customImageView: UIImageView!
@IBOutlet weak var categoryLabel: UILabel!
@IBOutlet weak var articleTime: UILabel!

override func awakeFromNib() {
    super.awakeFromNib()
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
}
}

调用cell.customImageView.image = nil 时出现问题,我得到这个:fatal error: unexpectedly found nil while unwrapping an Optional value

在我看过的任何地方,这是重置 UIImageView 图像的正确方法,因此我将不胜感激任何帮助。

【问题讨论】:

    标签: swift uitableview uiimageview


    【解决方案1】:

    @IBOutlet var customImageView: UIImageView! 在此处使用 ! 定义展开值会导致问题。因为如果你用! 转换值,这意味着它不能是nil

    将其设为可选将解决问题

    @IBOutlet var customImageView: UIImageView?
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 2016-07-05
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多