zoukankan      html  css  js  c++  java
  • oc的运行时系统

    Objective-C is a class-based object system. Each object is an instance of some class; the object's isa pointer points to its class. That class describes the object's data: allocation size and ivar types and layout. The class also describes the object's behavior: the selectors it responds to and instance methods it implements.

    https://www.cnblogs.com/feng9exe/p/7232915.html

    一、运行时结构系统

    typedef struct objc_class *Class;

    typedef struct objc_object *id;

    struct objc_class {

        Class isa  OBJC_ISA_AVAILABILITY;

    }

    struct objc_object {

        Class isa  OBJC_ISA_AVAILABILITY;

    };

    1、Class本身是一个类型结构,定义了类类型的组成和存储形式;

    2、oc的类信息在编译时被编译为class的实例;即将oc的类信息保存在一个Class实例的结构中。

    struct objc_class {

        Class isa  OBJC_ISA_AVAILABILITY;

        #if !__OBJC2__

        Class super_class                                        OBJC2_UNAVAILABLE;

        const char *name                                         OBJC2_UNAVAILABLE;

        long version                                             OBJC2_UNAVAILABLE;

        long info                                                OBJC2_UNAVAILABLE;

        long instance_size                                       OBJC2_UNAVAILABLE;

        struct objc_ivar_list *ivars                             OBJC2_UNAVAILABLE;

        struct objc_method_list **methodLists                    OBJC2_UNAVAILABLE;

        struct objc_cache *cache                                 OBJC2_UNAVAILABLE;

        struct objc_protocol_list *protocols                     OBJC2_UNAVAILABLE;

        #endif

    } OBJC2_UNAVAILABLE;

    3、oc的对象在创建时,会与它的类型信息进行关联。

    isa;

    二、运行时构建系统

    isa

    method

    三、运行时执行(解释)系统

    1、查找执行系统

    _objc_msgSend

    objc_msgSendSuper

    the superclass at which to start searching for the method implementation

    2、解释转发系统

    _objc_msgForward

    ForwardInvocation

    3、

  • 相关阅读:
    celery 定时任务demo
    zip函数的使用
    关于数论的知识整理——待更新
    线性基
    博弈论博客推荐
    BZOJ1597: [Usaco2008 Mar]土地购买——斜率优化
    BZOJ1096 [ZJOI2007]仓库建设——斜率优化
    bzoj1010: [HNOI2008]玩具装箱toy——斜率优化
    斜率优化
    HDU3480 Division——四边形不等式或斜率优化
  • 原文地址:https://www.cnblogs.com/feng9exe/p/11677813.html
Copyright © 2011-2022 走看看