美文网首页
类对象和实例对象如何判断能否调用某个方法

类对象和实例对象如何判断能否调用某个方法

作者: 子键_北京不眠夜 | 来源:发表于2016-06-22 23:50 被阅读74次

我们判断一个实例对象能否调用某个方法时,通常会用respondsToSelector:方法来检测。这个方法在NSObject协议中声明,NSObject类中实现。

那如何判断一个类是否能调用某个类方法呢?

实际上,如果了解Objective-C的类也是一个对象,即所谓的类对象的话,就知道我们同样可以用respondsToSelector:方法来做这个判断。

实例对象的类是类本身,而类对象的类是所谓的元类(Meta Class)。
例子:

  • 实例对象
    Test *test = [[Test alloc] init];
    NSLog(@"%d",[test respondsToSelector:@selector(testInstanceMethod)]);

  • 类对象

    NSLog(@"class mehtod %d",[Test respondsToSelector:@selector(testClassMethod)]);
    

相关文章

  • 类对象和实例对象如何判断能否调用某个方法

    我们判断一个实例对象能否调用某个方法时,通常会用respondsToSelector:方法来检测。这个方法在NSO...

  • 再论静态方法和类方法

    实例对象可以调用实例方法、类方法、静态方法 类对象只能调用类方法、静态方法

  • Swift 中的方法声明

    实例方法 类方法 静态方法 实例方法由实例对象进行调用;类方法和静态方法由类对象进行调用

  • 类中的方法

    1.实例方法的调用方式 实例对象.实例方法() 类对象.实例方法(实例对象) 例如: class Student ...

  • 底层原理:Category

    实例对象的isa指向类对象,当调用对象方法时,通过实例对象的isa找到类对象,最后找到对象方法的实现进行调用,分类...

  • Java 基础

    类和对象 对象:对象是类的一个实例,有状态和行为。 创建对象:声明,new 实例化,调用构造方法初始化对象。 类:...

  • isKindOfClass 和 isMemberOfClass

    这两个方法都有实例方法和类方法实例方法内部:调用者的类对象 == 传进去的 cls类方法内部:调用者的元类的对象 ...

  • OC重学第二天

    一. 类方法 OC 中方法分为两种.对象方法/实例方法如果想要调用对象方法必须要创建对象,通过对象来调用类方法.类...

  • 对象、类对象、元类对象&消息传递机制

    类对象:存储实例方法列表等信息。 元类对象:存储类方法列表等信息。 调用的类方法没有对应的实现,则会调用同名的实例...

  • 「Objective-C」类和方法

    1. 类方法和对象方法 对象方法 减号 - 开头 只能由对象来调用 对象方法中能访问当前对象的成员变量(实例变量)...

网友评论

      本文标题:类对象和实例对象如何判断能否调用某个方法

      本文链接:https://www.haomeiwen.com/subject/bsundttx.html