Ios UICollectionView不从UICollectionViewDataSource请求数据

Ios UICollectionView不从UICollectionViewDataSource请求数据,ios,swift,uicollectionview,Ios,Swift,Uicollectionview,我已将自定义数据源的UICollectionView设置为: let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() let dataSource = DataSource(storage) let delegate = DelegateFlow() layout.itemSize = CGSize(width: 90, height: 120) paymentsHistory = UICollectionVi

我已将自定义数据源的
UICollectionView
设置为:

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
let dataSource = DataSource(storage)
let delegate = DelegateFlow()
layout.itemSize = CGSize(width: 90, height: 120)

paymentsHistory = UICollectionView(frame: CGRect.zero, collectionViewLayout: layout)
paymentsHistory.delegate = delegate
paymentsHistory.dataSource = dataSource
paymentsHistory.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")

self.view.addSubview(paymentsHistory)
集合视图本身显示正确,但未显示任何单元格

我可以从调试输出中看到

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


从来没有人打过电话。这是为什么?

我猜它正在被取消引用,因为UICollectionView中的
委托
数据源
是弱引用

weak open var delegate: UICollectionViewDelegate?
weak open var dataSource: UICollectionViewDataSource?
一旦你超出了你所使用的任何函数的范围,它应该被设置为零


如果您将其作为类的属性,它应该可以工作。

您是否尝试调用
reloadData()将集合视图添加到
self.view
后,它不会执行任何操作@DashAndRestit不会调用,因为集合的高度为零,所以您需要检查集合视图的高度。@KKRocks约束稍后在该方法中设置。我还提到集合视图显示正确。是否检查了集合视图的高度?
weak open var delegate: UICollectionViewDelegate?
weak open var dataSource: UICollectionViewDataSource?