繁体   English   中英

我的UICollectionViewCell项目为零?

[英]My UICollectionViewCell item is nil?

我的CollectionViewCell imageView为零

我的细胞档案在这里

class MyTicketsCollectionViewCell: UICollectionViewCell {

     @IBOutlet weak var imgTicket: UIImageView!
}

我的控制器文件代码在这里

class MyTicketsCollectionViewController: UICollectionViewController {

     var photos: [String] = ["ticket1","ticket2","ticket3","ticket4"]

     override func viewDidLoad() {
     super.viewDidLoad()

         self.collectionView?.register(MyTicketsCollectionViewCell.self, forCellWithReuseIdentifier: "MyTicketsCollectionViewCell")

     }

     override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

         return photos.count
     }

     override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {


         let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyTicketsCollectionViewCell", for: indexPath) as! MyTicketsCollectionViewCell

         cell.imgTicket.image = UIImage(named: photos[indexPath.row])

        return cell
    }

}

错误为“线程1:致命错误:在展开可选值时意外发现nil”

当我调试它时

  cell.imgTicket is nil 

如何解决这个问题?

MyTicketsCollectionViewCell ActiveTicketsCollectionViewCell出队,但该单元格已在MyTicketsCollectionViewCellMyTicketsCollectionViewCell

尝试将代码更改为

   override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyTicketsCollectionViewCell", for: indexPath) as! MyTicketsCollectionViewCell

     cell.imgTicket.image = UIImage(named: photos[indexPath.row])

    return cell
}

这里有2种可能的解决方案...

1.可能是ActiveTicketsCollectionViewCell没有imgTicket属性,或者您在这里提到了错误的单元类,因为您提到了另一个单元类名称MyTicketsCollectionViewCell,因此请尝试编写此代码。

  let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyTicketsCollectionViewCell", for: indexPath) as! MyTicketsCollectionViewCell

  cell.imgTicket.image = UIImage(named: photos[indexPath.row])

  return cell

2.可能是您错过了将属性( @IBOutlet weak var imgTicket: UIImageView! )与插座(xib或情节提要)连接的可能性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM