zoukankan      html  css  js  c++  java
  • OC的反射机制


    反射机制主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法。对于人一个对象,都能够调用这个对象的任意方法和属性。这种动态获取信息以及动态调用对象方法的功能称为语言的反射机制。
    那么,在OC中,反射机制,我们可以可以利用这个干啥呢?
    动态的运行状态下,我们可以构造任意一个类,然后我们通过这个类知道这个类的所有属性和方法,并且如果我们创建一个对象,我们也可以通过对象找到这个类的任意的一个方法,这就是反射机制。
    在OC中,任何类的定义都是对象。类和类的实例(对象)没有本质的区别。任何对象都有ISA指针。
    /// An opaque type that represents an Objective-C class.
    typedef struct objc_class *Class;
    
    /// Represents an instance of a class.
    struct objc_object {
        Class isa  OBJC_ISA_AVAILABILITY;
    };
    
    /// A pointer to an instance of a class.
    typedef struct objc_object *id;
    

      

    可以看到,一个类的定义实质上是一个结构体。ISA指针就是指向这个结构体的指针。

    几种常见转换方式:
     
    通过类名的字符串形式实例化对象
    通过类名来生成相应类的实例
  • 相关阅读:
    面试总结
    java高级开发
    idea的快捷键
    微服务面试题目
    windows下jenkins的安装与配置
    微服务面试集合
    springlcoud中使用consul作为注册中心
    乐观锁和悲观锁
    volatile与synchronized的区别
    Java CAS 和ABA问题
  • 原文地址:https://www.cnblogs.com/howlaa/p/9957146.html
Copyright © 2011-2022 走看看