如何存储 class 引用并将其与 swift 中的实例进行比较?
How to store a class reference and compare it with an instance in swift?
我想存储一个类型的引用,以便稍后将其与对象进行比较。
我试过:
let myClassRef = AClass.self // store a reference to the type of AClass
if myObject is myClassRef {
// Do something
}
但这就是行不通。如何使用 AnyClass 对象?
或者,如何从实例中获取 AnyClass 对象(这产生与我期望的相同的结果)
创建 NSObject
的 Aclass
子类并使用 isMemberOfClass()
let myClassRef = AClass.self // store a reference to the type of AClass
if myObject.isKindOfClass(myClassRef) {
// Do something
}
为了避免子类化 NSObject
,您可以使用 dynamicType
:
let myClassRef = AClass.self
if myObject.dynamicType === myClassRef {
// ...
}
不需要subclass NSObject
.
如果 myObject
是类型 AnyObject
,您可以这样做:
import Foundation
let myClassRef = AClass.self
let myObject : AnyObject = BClass()
if myObject.isKindOfClass(myClassRef) {
// Do something
}
如果myObject
是特定的class或接口类型,您可以先将其转换为AnyObject
:
import Foundation
let myClassRef = AClass.self
let myObject = BClass()
if (myObject as AnyObject).isKindOfClass(myClassRef) {
// Do something
}
我想存储一个类型的引用,以便稍后将其与对象进行比较。
我试过:
let myClassRef = AClass.self // store a reference to the type of AClass
if myObject is myClassRef {
// Do something
}
但这就是行不通。如何使用 AnyClass 对象? 或者,如何从实例中获取 AnyClass 对象(这产生与我期望的相同的结果)
创建 NSObject
的 Aclass
子类并使用 isMemberOfClass()
let myClassRef = AClass.self // store a reference to the type of AClass
if myObject.isKindOfClass(myClassRef) {
// Do something
}
为了避免子类化 NSObject
,您可以使用 dynamicType
:
let myClassRef = AClass.self
if myObject.dynamicType === myClassRef {
// ...
}
不需要subclass NSObject
.
如果 myObject
是类型 AnyObject
,您可以这样做:
import Foundation
let myClassRef = AClass.self
let myObject : AnyObject = BClass()
if myObject.isKindOfClass(myClassRef) {
// Do something
}
如果myObject
是特定的class或接口类型,您可以先将其转换为AnyObject
:
import Foundation
let myClassRef = AClass.self
let myObject = BClass()
if (myObject as AnyObject).isKindOfClass(myClassRef) {
// Do something
}