类型和方法的检测

来源:互联网 发布:台湾网络电视在线直播 编辑:程序博客网 时间:2024/04/30 02:06

 

                               类型的检测         

1:对类型进行检测(其实就是去医院检测自己是不是自己或者儿子是不是自己亲生的,相当于做个DNA,只不过是用代码来实现)

  a:检测一个对象是否属于一个类(Class)类型或者其子类类型

     语法

         [对象名 isKindOfClass:[类名 Class]//关键词:isKindOfClass

     例:

          id p=[Person new];//首先实例化一个对象p注:p前面不加*

          [p isKindOfClass:[Person Clsss]]//如果对象p属于Person类或者Person的子类,则返回                                                                                       YES,不是则返回NO

     b:检测一个对象是否属于一个类(Class)类型,不包括其子类

       语法 

            [对象 isMemberOfClass:[类名 Class]];//关键词:isMemberOfClass

       例:

              id p=[Person];//实例化一个对象p;

           [p ismemberOfClass:[Person Class]]//如果对象p属于Person类则返回YES否则则返回                                                                                            No

   c: 检测一个类是否是另一个类的本类或者其子类

      语法:

           [类名 isSubclassOfClass:[类名 Class];//关键词:isSubclassOfClass

      例: 

          Student isSubclassOfClass:[Person Class]];//如果Student类是Person类的本类或者                                                                                                        其子类,则返回YES,否则返回No

                                              方法的检测           

 2:检测一个方法是不是属于一个对象或者一个类(实际上就是你老婆检查你两个兜有没有藏私房钱,,只不过用代码来实现

   a:检测一个对象是否有这个方法

      语法:

           [对象 respondsToSelector:SEl]

        ->[对象 respondsToSelector:@select(方法名)];//关键词:respondsToSelector

      例:

           Person *p=[Person new];//先实例化一个对象

           [p respondsToSelector:@selector(Write)]//判断如果p对象例Write方法,则返回YES,                                                                                              否则返回NO

   b:检测一个类中是否有这个方法

      语法

          [类名 instancesRespondToSelector:SEL];//关键词:instancesRespondToSelector

      ->[类名 instancesRespondToSelector:@selector(方法名)];

      例:

         Person instancesRespondToSelector:@selector(Write)];//判断如果Person类有Write                                                              方法,则返回Yes,否则返回NO

0 0