- (BOOL)isKingOfClass:(Class)cls
的底层源码如下:
- (BOOL)isKingOfClass:(Class)cls{
for(Class tcls = [self class];tcls;tcls = tcls->superclass){
if(tcls == cls) return YES;
}
}
- 如果要判断的实例对象等于传进去的cls或者是cls的子类,则返回YES,否则返回NO。
- (BOOL)isMemberOfClass:(Class)cls
- (BOOL)isMemberOfClass:(Class)cls{
return [self class] == cls;
}
- 如果要判断的实例对象是传进去的cls,则返回YES,否则返回NO。
+ (BOOL)isKingOfClass:(Class)cls
的底层源码如下:
+ (BOOL)isKingOfClass:(Class)cls{
for(Class tcls = object_getClass((id)self);tcls;tcls = tcls->superclass){
if(tcls == cls) return YES;
}
}
- 如果要判断的类对象等于传进去的cls的元类或者是cls的元类的子类,则返回YES,否则返回NO。(右边放元类,则返回YES)
+ (BOOL)isMemberOfClass:(Class)cls
+ (BOOL)isMemberOfClass:(Class)cls{
return object_getClass((id)self) == cls;
}
- 如果要判断的类是等于传进去的类的元类,则返回YES,否则返回NO。(右边放元类,则返回YES)