前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >判断自己的isa 指向的类是否等于传入的类

判断自己的isa 指向的类是否等于传入的类

原创
作者头像
艳艳代码杂货店
修改2021-09-26 09:39:59
5620
修改2021-09-26 09:39:59
举报
文章被收录于专栏:艳艳代码杂货店
代码语言:javascript
复制
isKindOfClass: 判断自己的isa 指向的类是否等于传入的类,不等于的话,找自己的继承连中的父类看有没有等于传入的类,有则YES,没有则NO
isMemberOfClass 判断自己的isa 指向的类是否等于传入的类,等于则YES,不等于则NO
源码:

// 类对象,是否是指定的元类的实例
+ (BOOL)isMemberOfClass:(Class)cls {
 return object_getClass((id)self) == cls;
}
// 实例对象,是否是指定的类的实例
- (BOOL)isMemberOfClass:(Class)cls {
 return [self class] == cls;
}
// 类对象,是否是指定的元类cls的实例,或者是cls继承者链中子类的实例
+ (BOOL)isKindOfClass:(Class)cls {
 for (Class tcls = object_getClass((id)self); tcls; tcls = tcls->super_class) {
 if(tcls == cls) return YES;
 }
 return NO;
}
// 实例对象,是否是指定的类的实例,或者是cls继承者链中子类的实例
-(BOOL)isKindOfClass:(Class)cls {
 for(Class tcls = [self class]; tcls; tcls = tcls->super_class) {
 if(tcls == cls) return YES;
 }
 return NO;
}


 青山不改,绿水长流,感谢每位佳人支持!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档