类型和方法的检测

 

                               类型的检测         

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值