首页 > 程序开发 > 移动开发 > IOS > 正文
iOS开发 - isKindOfClass,isSubclassOfClass和isMemberOfClass
2017-08-05 14:51:09       个评论    来源:My_Dream的博客  
收藏    我要投稿

在iOS开发中,会遇到需要判断一个对象是否为某类的对象,或者某个子类的对象.判断方法大体有三个isKindOfClass,isSubclassOfClass和isMemberOfClass.他们的区别是什么呢?下面通过代码来验证一下.

创建父子类关系的类对象

\

创建对象

测试1:isKindOfClass

\

isKindOfClass测试

\

isKindOfClass测试结果

测试2:isSubclassOfClass

\

isSubclassOfClass测试

\

isSubclassOfClass测试结果

测试3:isMemberOfClass

\

isMemberOfClass测试

\

测试结果

结果表明isSubclassOfClass和isKindOfClass的作用基本上是一致都是用来判断一个对象或一个类是否为某个类或者某个类的子类.

isMemberOfClass 有所不同,只有当类型完全匹配的时候才会返回YES。

补充:附加测试(isMemberOfClass)

\

isMemberOfClass附加测试

\

测试结果

结果令人意外bool7为假,难道上面得出的结论是错误的么?或者textArr不是 NSArray 类型的?打印了一下textArr 结果发现结果为

\

textArr类型为NSArray0

原来textArr 不是NSArray类型实例,通过不同方法实例化的array都是NSArray子类的实例,NSArray是一个抽象的基类。这种模式就是了类簇模式.

点击复制链接 与好友分享!回本站首页
上一篇:ios 单元测试(XCTestCase)覆盖率统计
下一篇:最后一页
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 |
版权所有: 88bifa.com--致力于做实用的IT技术学习网站