五种方式进行类型判断
-
继承 NSObject 利用runtime获取类
let url = NSURL() let name: AnyClass! = object_getClass(url) if NSStringFromClass(name) == "NSURL" { return true }
2.利用 func isKind(of aClass: AnyClass) -> Bool
判断 是否是该类的或者子类的实例
if url .isKind(of: NSURL.self) {
return true
}
-
利用type(of: <T>)
if NSStringFromClass(type(of: url.self)) == "NSURL" { return true }
4.利用 is
if url is NSURL {
return true
}
-
利用 classForCoder 获取类名字符串 判断
if NSStringFromClass(url.self.classForCoder) == "NSURL" { return true }