五種方式進(jìn)行類型判斷
-
繼承 NSObject 利用runtime獲取類
let url = NSURL() let name: AnyClass! = object_getClass(url) if NSStringFromClass(name) == "NSURL" { return true }
2.利用 func isKind(of aClass: AnyClass) -> Bool
判斷 是否是該類的或者子類的實(shí)例
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 }