• 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指针就是指向这个结构体的指针。

    几种常见转换方式:
     
    通过类名的字符串形式实例化对象
    通过类名来生成相应类的实例
  • 相关阅读:
    访问控制
    静态方法
    类的特殊属性
    Ubuntu Linux 安装配置 MySQL
    Ubuntu16.04 18.04 安装rabbitmq 配置、使用详细教程
    E: The package lists or status file could not be parsed or opened.
    Linux 安装jsoncpp
    gpgkeys: protocol `https’ not supported
    pch文件中调试模式的使用
    ios UITableview 刷新某一个cell 或 section
  • 原文地址:https://www.cnblogs.com/howlaa/p/9957146.html
Copyright © 2020-2023  润新知