Swift类作为objc运行时的参数

时间:2014-06-05 13:29:26

标签: swift objective-c-runtime

当使用objc运行时进行Swift内省时,我注意到以下内容是可能的:

object_setClass(anObject, Birdy.classForCoder());

。 。 。但不是

object_setClass(anObject, Birdy);

Birdy.classForCoder()和Birdy都是AnyClass的一个实例,为什么只有前者会传播到objc运行时?

1 个答案:

答案 0 :(得分:4)

使用Birdy.self获取AnyClass元类型。

示例:

object_setClass(anObject, Birdy.self)

如果您计划在Obj-C中提供Swift类,则应使用@objc注释标记它们:

@objc class Birdy
{
    func tweet()
    {
        println("Tweet tweet! #swift")
    }
}