只是想知道为什么我在延迟初始化时无法访问继承的对象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'
最佳答案
您只是缺少 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
保持同步,使其成为计算属性。
关于swift - 在延迟初始化 swift 中访问继承的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37149348/