kin*_*rth 0 delegates initialization ios swift
我有一个集合视图,这是一个类属性,我想这样设置:
var collectionView: UICollectionView = {
let cv = UICollectionView()
cv.delegate = self
cv.dataSource = self
return cv
}()
Run Code Online (Sandbox Code Playgroud)
然而,这给了我一个错误,即self不是UICollectionViewDelegate/UICollectionViewDataSource类型,这是有道理的,因为闭包不是那种类型.我想知道是否可以从闭包内部引用类实例?或者我应该以不同的方法设置委托和数据源?我已经搜索了一个解决方案但没有找到任何关于通过闭包设置委托的事情.
谢谢.
您可以将属性更改var为lazy var,因为只有在第一次使用它们时才会初始化惰性属性.所以这将解决您的问题.
lazy var collectionView: UICollectionView = {
let cv = UICollectionView()
cv.delegate = self
cv.dataSource = self
return cv
}()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |