看官们,我们在上一章回末尾提到了类型转换的条件,本章回中我们详细分析一下如何检查这些条件。
检查条件有专门的方法,我们主要介绍两个方法:
isKindOfClass和isMemberOfClass,
接下来我们分别介绍它们。
isKindOfClass:Obj 用来检查某个对象的类是否为Obj对象的类或者其子类,如果是,返回YES,否则返回NO。通常有二种情况会返回YES。
- 1.被检查对象的类与Obj的类相同;
- 2.被检查对象的类是Obj对象类的子类;
isMemberOfClass:Obj 用来检查某个对象的类是否为Obj对象的类,如果是,返回YES,否则返回NO。
使用这两个方法时需要传递某个类型的对象,我们通常使用class方法来生成某个类型的对象,在程序中直接使用类名就可以调用此方法。
在程序中isKindOfClass
使用的的范围广一些,我们在进行多态类型转换时一定要做类型检查,只有在同一类的体系结构中的类才可以转换,不然会发生错误,即使不发生错误,在转换后使用多态时也会发生运行时错误。
最后,我们对本章回的内容做一个总结:
- 1.进行类型转换时需要做类型检查,确保两个类都在同一个类体系结构中,这样才可以进行类型转换;
- 2.检查的方法有两个:isKindOfClass和isMemberOfClass;
- 3.使用类的class方法可以得到类的对象;
看官们,欲知后事如何且听下回分解!