Ios 注册类语法-Swift

Ios 注册类语法-Swift,ios,class,swift,init,Ios,Class,Swift,Init,我希望通过UICollectionViewFlowLayout类的init方法注册它: class GridLayout: UICollectionViewFlowLayout { override init() { super.init() self.scrollDirection = UICollectionViewScrollDirection.Vertical; self.itemSize = CGSizeMake(187, 2

我希望通过UICollectionViewFlowLayout类的init方法注册它:

class GridLayout: UICollectionViewFlowLayout {

    override init() {
        super.init()

        self.scrollDirection = UICollectionViewScrollDirection.Vertical;
        self.itemSize = CGSizeMake(187, 273)
        // Register my class here...
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}
在目标C中,我将使用以下语法实现这一点

[self registerClass:[MyView class] forDecorationViewOfKind:[MyView kind]];
一个很简单的问题,我如何用swift写这个

编辑: kind是MyView类中的一个函数

func kind() -> NSString {
    return kShelfViewKind
}
可以向您展示您所使用的大多数objective-c方法的Swift语法。对于这个特定的案例,它是

棘手的一点是传递
viewClass
参数。与Swift中Objective-C的
[MyView类]
最接近的等价物是:
MyView.self

此外,您的
kind()
函数应该是一个函数,这样您就可以在类本身上调用它,而不仅仅是在类的实例上调用它:

class func kind() -> NSString { ... }
更改后,函数调用应如下所示:

self.registerClass(MyView.self, MyView.kind());

我道歉,我应该澄清这是一种方便的方法:见我的帖子编辑