+ (id)self {
return (id)self;
}
- (id)self {
return self;
}
+ (Class)class {
return self;
}
- (Class)class {
return object_getClass(self);
}
+ (Class)superclass {
return self->superclass;
}
- (Class)superclass {
return [self class]->superclass;
}
+ (BOOL)isMemberOfClass:(Class)cls {
return object_getClass((id)self) == cls;
}
- (BOOL)isMemberOfClass:(Class)cls {
return [self class] == cls;
}
+ (BOOL)isKindOfClass:(Class)cls {
for (Class tcls = object_getClass((id)self); tcls; tcls = tcls->superclass) {
if (tcls == cls) return YES;
}
return NO;
}
- (BOOL)isKindOfClass:(Class)cls {
for (Class tcls = [self class]; tcls; tcls = tcls->superclass) {
if (tcls == cls) return YES;
}
return NO;
}
+ (BOOL)isSubclassOfClass:(Class)cls {
for (Class tcls = self; tcls; tcls = tcls->superclass) {
if (tcls == cls) return YES;
}
return NO;
}复制代码
问如下打印啥?
NSLog(@"[self class]%@",[self class]);
NSLog(@"[super class]%@",[super class]);
NSLog(@"==================");
NSLog(@"[self superClass]%@",[self superclass]);
NSLog(@"[super superClass]%@",[super superclass]);复制代码
NSLog(@"%d",[[NSObject class] isKindOfClass:[NSObject class]]);
NSLog(@"%d",[[NSObject class] isMemberOfClass:[NSObject class]]);
NSLog(@"%d",[[Person class] isKindOfClass:[Person class]]);
NSLog(@"%d",[[Person class] isMemberOfClass:[Person class]]);复制代码