isKindOfClass:(Class)aClass和isMemberOfClass:(Class)aClass功能有什么区别?我知道这是一个很小的东西,一个是全局的,而另一个是完全的类匹配,但我需要有人指定哪个是哪个.
Objective-C有两种方法来测试对象是否是特定类或子类的实例:
- (BOOL)isMemberOfClass:(Class)aClass;
Run Code Online (Sandbox Code Playgroud)
返回一个布尔值,指示接收者是否是给定类的实例.
- (BOOL)isKindOfClass:(Class)aClass;
Run Code Online (Sandbox Code Playgroud)
返回一个布尔值,指示接收者是给定类的实例还是从该类继承的任何类的实例.
在Swift中,我可以使用is运算符测试后者:
if myVariable is UIView {
println( "I'm a UIView!")
}
if myVariable is MyClass {
println( "I'm a MyClass" )
}
Run Code Online (Sandbox Code Playgroud)
如何测试实例是否是Swift中的特定类或类型(即使在处理没有NSObject子类时)?
注意:我知道func object_getClassName(obj: AnyObject!) -> UnsafePointer<Int8>.