简单介绍一下Runtime-运行时:
- 运行时是一种面向对象的编程语言的运行环境,类似于java的虚拟机
- OC最主要的特点就是在程序运行时,以发送消息的方式调用该方法
- 运行时是OC的核心,Objective-C即使基于运行时的
- 参考文档:http://nshipster.cn/swift-objc-runtime/
利用clang生成中间代码
- 进入终端
- 输入以下命令:
$ clang -rewrite-objc main.m - 可以将OC代码重写成C++代码
导图:
运行时获取对象的属性数组
创建项目,设置类Person并声明属性age,name,如下图:
-
创建一个继承于NSObject的分类Runtime。并导入运行时的头文件。并声明方法,如下图:
上述,运行时的头文件应该导入到.m中。
- 实现分类的方法
测试
根据运行时,我们可以获取继承于NSObject调用,该方法的类,属性值有两个。
假如,改成三个:
问题:
我们看见copy,就要释放,看下图:
- 获取属性名称
具体步骤,请看下图:
这样已经可以动态的获取了属性的名称
验证:
5)实现目标
再来看我们的目标-获得一个属性的数组。
整体逻辑