只是想知道为什么在延迟初始化时我无法访问继承的对象collectionView:
class FunCollectionLayout : UICollectionViewFlowLayout {
var middleSection:Int = {
let sectionCount = self.collectionView!.numberOfSections()
return sectionCount/2
}()
func testFunc() {
print((self.collectionView?.numberOfSections())! / 2)
}
}
错误是:
Value of type 'NSObject -> () -> FunCollectionLayout' has no member 'collectionView'
答案 0 :(得分:1)
您只是缺少lazy
声明属性。
lazy var middleSection:Int = {
let sectionCount = self.collectionView!.numberOfSections()
return sectionCount/2
}()
但是你没有把它变成计算属性而忽略了这一点。
var middleSection: Int {
let sectionCount = self.collectionView!.numberOfSections()
return sectionCount / 2
}
保持动态,与collectionView
保持同步,使其成为计算属性。