当使用objc运行时进行swift自省时,我注意到以下是可能的:
object_setClass(anObject, Birdy.classForCoder());
. …但不是
object_setClass(anObject, Birdy);
birdy.classforcoder()和birdy都是任何类的实例,为什么只有前者才会传播到objc运行时?
最佳答案
使用Birdy.self
获取AnyClass
元类型。
例子:
object_setClass(anObject, Birdy.self)
如果计划在obj-c中提供swift类,则应使用
@objc
注释对其进行标记:@objc class Birdy
{
func tweet()
{
println("Tweet tweet! #swift")
}
}