我想在类型上存储一个引用,以便稍后将它与一个对象进行比较。
我试着这样做:
let myClassRef = AClass.self // store a reference to the type of AClass
if myObject is myClassRef {
// Do something
}
但它不起作用。如何使用AnyClass对象? 或者,如何从实例中获取AnyClass对象(这会产生与我期望的结果相同的结果)
答案 0 :(得分:2)
为避免必须继承NSObject
,您可以使用dynamicType
:
let myClassRef = AClass.self
if myObject.dynamicType === myClassRef {
// ...
}
答案 1 :(得分:1)
制作Aclass
的{{1}}子类使用NSObject
isMemberOfClass()
答案 2 :(得分:0)
它不需要继承NSObject
。
如果myObject
是AnyObject
类型,您可以这样做:
import Foundation
let myClassRef = AClass.self
let myObject : AnyObject = BClass()
if myObject.isKindOfClass(myClassRef) {
// Do something
}
如果myObject
是特定的类或接口类型,您可以先将其转换为AnyObject
:
import Foundation
let myClassRef = AClass.self
let myObject = BClass()
if (myObject as AnyObject).isKindOfClass(myClassRef) {
// Do something
}