什么是运行时态

运行时态:运行时从我们程序生命周期开始:application: didFinishLaunchingWithOptions:),主线程开启,整个程序开始运行



 语言特性:

1.静态语言:C语言等,特性是:静态语言的类型决定是在编译时

int number = 12;

2.动态语言:OC语言等,特性是:动态语言的类型决定是在运行时

id number = [[NSNumber alloc]init];

   运行时态才用kvc获取对象的成员属性

OC里面传对象其实就是传递指针


OC是一门动态语言,类型决定在运行时,OC的所有对象在运行时中什么?

原则:OC语言是C语言的拓展 ——>可能OC的对象在运行时候就是C语言. 


对象:

oc的对象在运行的时候,都是一个C的结构体,这个结构体的类型叫做 objc_object

struct objc_object {

    Class isa  // isa指针指向对象的类;

};


运行时才决定类型 :是因为在运行的时候是一个c的结构体,这个结构体有一个isa指针指向对象的类,所以它才会从运行时中确定类型



类:

oc的类在运行的时候,也是一个C的结构体,这个结构体的类型叫做 objc_class


struct objc_class {

    Class isa ;

    Class super_class ;

    const char *name ;

    long version ;

    long info ;

    long instance_size ;

    struct objc_ivar_list *ivars;

    struct objc_method_list **methodLists ;

    struct objc_cache *cache;

    struct objc_protocol_list *protocols;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值