美文网首页
isMemberOfClass isKindOfClass

isMemberOfClass isKindOfClass

作者: yulekwok | 来源:发表于2019-08-10 23:21 被阅读0次

    isMemberOfClass isKindOfClass

    @implementation NSObject
    
    - (BOOL)isMemberOfClass:(Class)cls {
        return [self class] == cls;
    }
    
    - (BOOL)isKindOfClass:(Class)cls {
        for (Class tcls = [self class]; tcls; tcls = tcls->superclass) {
            if (tcls == cls) return YES;
        }
        return NO;
    }
    
    
    + (BOOL)isMemberOfClass:(Class)cls {
    
    // 优先获取元类
        return object_getClass((id)self) == cls;
    }
    
    
    + (BOOL)isKindOfClass:(Class)cls {
        for (Class tcls = object_getClass((id)self); tcls; tcls = tcls->superclass) {
            if (tcls == cls) return YES;
        }
        return NO;
    }
    @end
    

    相关文章

      网友评论

          本文标题:isMemberOfClass isKindOfClass

          本文链接:https://www.haomeiwen.com/subject/tendjctx.html