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

标签 ios swift uicollectionview

我正在尝试将 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 selfSwift-book状态:

Unlike Objective-C initializers, Swift initializers do not return a value.

(这不适用于 failable initialisers )

关于ios - nil 是初始化程序中唯一允许的返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191090/

相关文章:

IOS 幻灯片菜单,如 facebook 和与 Storyboard一起使用的路径 2.0

ios - 如何使用 swift 水平添加 tableview 将 UICollectionView 实现到 UITableviewCell 中?

ios - UICollectionView 和 UITableView 重新加载会导致单元格重新排序

ios - 如何禁用 CollectionView 的垂直手势识别器?

ios - UIPasteboard 没有提供选项,如果有多个字符串则粘贴什么

ios - 在 iOS 13 上拖动时 UICollectionView 单元格会捕捉到原始位置

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

ios - 如何向左滑动删除收藏单元

ios - 如何在 willDisplay 单元格回调中访问 UICollectionView 中的特定单元格

ios - 以编程方式从 super View 中删除 View 后更新约束/框架(自动布局)