nil是初始化程序中允许的唯一返回值吗?

时间:2016-07-04 19:21:56

标签: ios swift uicollectionview

我正在尝试子类化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")
    }
}

1 个答案:

答案 0 :(得分:1)

正如评论中提到的@jtbandes一样,您不应致电return selfSwift-book声明:

  

与Objective-C初始化程序不同,Swift初始化程序不会返回a   值。

(不适用于failable initialisers