我正在尝试将 UICollectionViewFlowLayout 子类化,但我收到错误消息“nil 是初始化程序中允许的唯一返回值。”我试图检查父类(super class)的初始化程序,如果没有,我会返回 nil,但是,唉,我收到另一个错误,说 self 是不可变的。
import UIKit
class CollectionViewSpringLayout: UICollectionViewFlowLayout {
var dynamicAnimator: UIDynamicAnimator?
override init() {
self.minimumInteritemSpacing = 10
self.minimumInteritemSpacing = 10
//self.itemSize = CGSizeMake(44, 44)
self.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10)
self.dynamicAnimator = UIDynamicAnimator(collectionViewLayout: self)
return self
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
最佳答案
正如@jtbandes 在评论中提到的,您不应该调用return self
。 Swift-book状态:
Unlike Objective-C initializers, Swift initializers do not return a value.
(这不适用于 failable initialisers )
关于ios - nil 是初始化程序中唯一允许的返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191090/