我有一个包含集合视图的视图控制器。 集合视图的委托和数据源是一个自定义类,我无法从该类访问集合视图本身。该类包括UICollectionViewFlowLayout,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource。
我尝试通过输入不起作用的self.collectionView来访问集合视图,并说:“致命错误:在解包可选值(lldb)时意外发现nil”。
尝试设置一个静态let变量,该变量指向包含集合视图的View Controller,但它也不起作用。
答案 0 :(得分:1)
代理和数据源是dataprovider,而不是更多。将它们提取到自己的类中是一个非常好的想法(面向对象的设计)。但是这些类不应该实现协议的api以及它们的一些私有帮助函数。每个协议函数都通过提供引用作为第一个参数来提供对集合视图的访问。
e.g。
func numberOfSections(in: UICollectionView)