runtime-ios
来源:互联网 发布:java中最难的是什么 编辑:程序博客网 时间:2024/06/06 07:46
什么是runtime?
runtime直译就是运行时间,run(跑,运行) time(时间),网上大家都叫它运行时,它是一套比较底层的纯C语言API,属于一个C语言库,包含了很多底层的C语言API,它是OC的幕后工作者,我们平时写的OC代码,在运行过程时,都会转为runtime的C语言代码
runtime有什么用?
如果你之前不知道runtime,可能觉得它没什么用,其实他的作用非常强大.下面我们就以代码的形式为大家揭开runtime的神秘面纱
作用1 获取一个类全部成员变量名(如果你的成员私有,也可以获取到)
我们新建一个Person类,.h代码如下
这些成员变量都是公有的,我们直接点开头文件就可以看到,如果是系统的类呢,你是不是就不知道类里面有哪些成员了,利用runtime可以轻松解决这个问题,现在我们来测试一下,记得要加 #import
打印结果
你可以试一下,把所有的成员放到.m文件里面,它打印的结果是一样的.
作用2 同理,我们可以获取到一个类的全部属性名
打印结果:
作用3 获取一个类的全部方法
打印结果:
我们可以看到所有的方法
作用4 获取一个类遵循的所有协议
先将遵循的协议给注释掉
测试代码
结果啥都没有打印出来
我们把遵循的代码注释给打开
再执行测试代码,打印结果
是不是很棒,你可能觉得貌似用处不太大,那接下来我们来看看如何利用runtime归档和解档.
作用5 归档/解档测试如下:打印结果:
0 0
- [runtime] iOS-Runtime-Headers
- iOS runtime
- iOS Runtime
- iOS-runtime
- iOS Runtime
- IOS Runtime
- IOS - RunTime
- ios runtime
- ios runtime
- ios runtime
- iOS Runtime
- iOS runtime
- ios runtime
- iOS Runtime
- iOS - Runtime
- iOS--Runtime
- iOS runtime
- ios runtime
- java中将list、map对象写入文件
- 回调函数
- Swift使用友盟分享
- angularjs学习总结 详细教程
- java调用dll文件处理过程
- runtime-ios
- NSError和NSException区别
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- 袁腾飞——春秋战国
- 集合随机抽取与排序(双色球)
- multicastSocket实现单播组播 局域网通信
- 城市列表-根据拼音首字母排序
- Linux——文件操作
- Logistic Regression 损失函数理解