我正在尝试子类化UICollectionViewFlowLayout但是我得到的错误是'nil是初始化程序中允许的唯一返回值。'我试图检查超类的初始化程序,如果没有,我会返回nil,但是唉,我得到另一个错误,说自我是不可变的。
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")
}
}
答案 0 :(得分:1)
正如评论中提到的@jtbandes一样,您不应致电return self
。 Swift-book声明:
与Objective-C初始化程序不同,Swift初始化程序不会返回a 值。
(不适用于failable initialisers)