博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xcode开发--运行时runtime
阅读量:6692 次
发布时间:2019-06-25

本文共 1032 字,大约阅读时间需要 3 分钟。

运行时(runtime)

什么是运行时?

  • 运行时是苹果提供的纯C语言的开发库

运行时的作用

  • 能获得某个类的所有成员变量
  • 能获得某个类的所有属性
  • 能获得某个类的所有方法
  • 交换方法实现
  • 能动态添加一个成员变量
  • 能动态添加一个属性
  • 能动态添加一个方法

运行时实例

应用1:打印某个类的所有成员变量(实例变量)--class_ copy_IvarList()

函数说明:

  • 需要添加#import < objc/runtime.h >
  • I -> Instance->实例变量即成员变量
  • var ->variable->变量
  • 如果函数名中包含了copy\new\retain\create 那么这个函数返回的数据就需要手动释放
#import 
- (void)example{ //成员变量的数量 unsigned int outCount = 0; //获得所有的成员变量 //ivas是一个指向成员变量的指针 //默认指向第0个成员变量(最前面) Ivar *ivars = class_copyIvarList([UITextField class], &outCount); //一个Ivar就代表一个成员变量(Instancec variable) //遍历所有的成员变量 for (int i = 0; i < outCount; i++) { //取出i位置对应的成员变量 Ivar ivar = *(ivars + i); //==ivars[i] //C语言允许,指向第0个成员变量的指针可以用数组方式访问 //Ivar ivar = ivars[i]; //获得成员变量的名字 NSLog(@"%s",ivar_getName(ivar)); } //如果函数名中包含了copy\new\retain\create 那么这个函数返回的数据就需要手动释放 free(ivars);}

转载于:https://www.cnblogs.com/KrystalNa/p/4796626.html

你可能感兴趣的文章
Oracle版本升级
查看>>
sizeof 的使用(标记一下)
查看>>
第 四 十 天:关 于 正 则 的 一 些 小 用 法
查看>>
编程 -- awk
查看>>
2012 #3 Arcane Numbers
查看>>
python 列表模拟堆栰
查看>>
Linux-Centos5.3中文乱码问题解决
查看>>
linux分区学习[ CentOS ]
查看>>
aaa认证
查看>>
adb_安装软件
查看>>
廖雪峰官网学习js 字符串
查看>>
phpcms 如何获取文章
查看>>
C# 如何防止重放攻击(转载)
查看>>
C#匿名类型
查看>>
ActiveMQ
查看>>
Nginx服务器部署 负载均衡 反向代理
查看>>
C++学习笔记:指向函数的指针
查看>>
Child Action
查看>>
# 2017-2018-1 20155319 实验五 《通讯协议设计》
查看>>
通用后台管理系统(1)-数据库设计
查看>>