您的位置:首页 > 其它

runtime整理:什么是runtime,带你初步了解runtime

2016-06-06 16:41 441 查看

runtime简单的认识

我所理解的runtime是一个使用C编写的库,为C添加了面向对象的特性,它是一个库(Runtime Library中文:运行时库).在这个库中可以用C函数来实现方法,对象也可以用C语言的结构体来表示…所有oc的方法的背后都是通过runtime来运行的.

查看
<
objc/objc.h
>

1.OC中的对象是一个objc_object类型的结构体

struct objc_object {
    Class isa  OBJC_ISA_AVAILABILITY;
};


id是一个objc_object类型的指针

typedef struct objc_object *id;


2.OC中的类是一个objc_class类型的结构体

struct objc_class{
Class isa OBJC_ISA_AVAILABILITY;
#if !__ OBJC2__
Class super_class
const char *name
long version
long info
long instance_size
struct objc_ivar_list
struct objc_method_list *methodLists
struct objc_cache *cache
struct objc_protocol_list *protocols
#endif
}OBJC2_UNAVAILABLE


3.isa是一个指向objc_class结构体的指针

(1)对于objc_object,其isa指向的是对象对应的类

(2)对于objc_class,其isa指向的是类对应的类-元类(metaclass)

4.常用类型

1.

<objc/objc.h>
SEL,IMP


2.

<objc/runtime>
Method,Ivar,Category,Protocol


3.

<objc/message>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  runtime