iOS_Runtime

Objective_C是一门动态语言,它把很多静态语言在编译和链接时做的事情放到了运行时去处理,在运行时实现了对类、方法、成员变量、属性等信息的管理机制,这一套机制为我们开发提供了极大的灵活性==》Runtime。

Runtime是一个用C和汇编语言写的动态库,利用它,我们可以做的事情有很多。下面一起来看一下:

在学习Runtime之前,有必要先知道几个数据结构:

1.类的数据结构,着重关注红圈的几个字段



2.类的实例的数据结构




3.Runtime提供了非常多的方法来进行各种操作。下面我们通过简单实例来使用一些常用操作。

  首先创建如下Person类:

  

  再看如下代码:

  

 结果如下:


==》通过上面两个数据结构我们知道,类的实例变量有个isa指针,指向该实例所属类,即Person类,而Person类有个superclass指针,指向其父类,即NSObject。很好理解。


4.接下来我们获取一下类的成员变量,属性,方法,协议

1)获取类的成员变量

   

  

2) 获取类的属性


==》这里多说一点:本质上一个属性背后必然对应着一个成员变量,但是属性又不仅仅只是一个成员变量,属性还会根据自己对应的属性特性的定义来对这个成员变量进行一系列的封装:提供 Getter/Setter 方法、内存管理策略、线程安全机制等等。

3)获取类的方法 (方法必须要有具体实现)


4)获取某类遵守的协议




就先讲这些比较基本的吧,就是通过Runtime获取一个类的成员变量,属性,方法,遵守的协议。当我们得到这些东西后,接下来就可以“ 随心所欲”了。下一篇博客将会讲解如何动态创建一个类,如何动态添加/修改成员变量和属性,如何动态添加/修改/替换方法,以及一些注意事项。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值