【发布时间】:2015-05-05 04:08:31
【问题描述】:
我有一个 UICollectionViewController 的自定义 swift 子类,它具有属性 unowned var mainController。我不知道如何初始化这个属性。如果我在调用super.init 之前尝试对其进行初始化,Xcode 会抱怨在 super.init 之前使用了“self”。如果我之后尝试对其进行初始化,Xcode 会抱怨在 super.init 调用时未初始化属性“self.mainController”。
一般来说,swift中是否可以将无主变量作为子类的属性?
class CustomCollection: UICollectionViewController {
unowned var mainController: MainController
convenience init(mainController: MainController) {
var collectionViewLayout = UICollectionViewLayout()
self.mainController = mainController
self.init(collectionViewLayout: collectionViewLayout)
}
override init(collectionViewLayout layout: UICollectionViewLayout) {
super.init(collectionViewLayout: layout)
}
...
}
【问题讨论】:
-
只有一个 init 方法用于设置 mainController 的值或在调用 super.init 之前在所有 init 方法中初始化 mainController。
标签: swift