Swift提供了is关键字(和as?)检查对象是否可以成功向下转换:
is
as?
if foo is MyClass { // ... }
而且NSObjectProtocol还提供了原文func isKindOfClass(aClass: AnyClass!) -> Bool:
NSObjectProtocol
func isKindOfClass(aClass: AnyClass!) -> Bool
if something.isKindOfClass(MyClass) { // ... }
对于符合的类NSObjectProtocol,这真的有很大不同吗?
是的, 这是有区别的:is在Swift中可以与任何类一起使用,而isKindOfClass()只能与属于NSObject或实现的那些类一起使用NSObjectProtocol。
isKindOfClass()
NSObject