将Objective-C转换为Swift:分配给self

时间:2014-09-23 03:48:31

标签: objective-c swift uicollectionview

我正在尝试将UICollectionViewController的init方法从Obj-C转换为Swift。这是原始代码:

-(id)initWithCollectionViewLayout:(UICollectionViewFlowLayout *)layout {
    if (self = [super initWithCollectionViewLayout:layout]) {
      [self.collectionView registerClass:[UICollectionViewCell class]  forCellWithReuseIdentifier:CELL_ID];
      [self.collectionView setBackgroundColor:[UIColor clearColor]];
    }
    return self;
}

这是我到目前为止所做的:

override init(collectionViewLayout layout: UICollectionViewLayout!) {
        super.init(collectionViewLayout: layout)
        self.collectionView?.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "CELL_ID")
        self.collectionView?.backgroundColor = UIColor.clearColor()
}

我无法将作业转换为self。我在https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-XID_318阅读了文档,但无济于事。提前谢谢!

2 个答案:

答案 0 :(得分:2)

在Swift中初始化对象时,保证安全。

因此,无需检查零值。

答案 1 :(得分:1)

您不需要在Swift构造函数中指定self。你上面的东西很好。

但是,UICollectionViewCell.self应为UICollectionViewCell