runtime
2014-08-26 00:09
162 查看
什么是runtime?
1> runtime是一套底层的C语言API(包含很多强大实用的C语言数据类型、C语言函数)
2> 实际上,平时我们编写的OC代码,底层都是基于runtime实现的
* 也就是说,平时我们编写的OC代码,最终都是转成了底层的runtime代码(C语言代码)
runtime有啥用?
1> 能动态产生一个类、一个成员变量、一个方法
2> 能动态修改一个类、一个成员变量、一个方法
3> 能动态删除一个类、一个成员变量、一个方法
常见的函数、头文件
#import <objc/runtime.h> : 成员变量、类、方法
Ivar * class_copyIvarList : 获得某个类内部的所有成员变量
Method * class_copyMethodList : 获得某个类内部的所有方法
Method class_getInstanceMethod : 获得某个实例方法(对象方法,减号-开头)
Method class_getClassMethod : 获得某个类方法(加号+开头)
method_exchangeImplementations : 交换2个方法的具体实现
#import <objc/message.h> : 消息机制
objc_msgSend(....)
1> runtime是一套底层的C语言API(包含很多强大实用的C语言数据类型、C语言函数)
2> 实际上,平时我们编写的OC代码,底层都是基于runtime实现的
* 也就是说,平时我们编写的OC代码,最终都是转成了底层的runtime代码(C语言代码)
runtime有啥用?
1> 能动态产生一个类、一个成员变量、一个方法
2> 能动态修改一个类、一个成员变量、一个方法
3> 能动态删除一个类、一个成员变量、一个方法
常见的函数、头文件
#import <objc/runtime.h> : 成员变量、类、方法
Ivar * class_copyIvarList : 获得某个类内部的所有成员变量
Method * class_copyMethodList : 获得某个类内部的所有方法
Method class_getInstanceMethod : 获得某个实例方法(对象方法,减号-开头)
Method class_getClassMethod : 获得某个类方法(加号+开头)
method_exchangeImplementations : 交换2个方法的具体实现
#import <objc/message.h> : 消息机制
objc_msgSend(....)
相关文章推荐
- 1、java设置Linux系统时间之 System.getRuntime.exec()
- Objective-C Runtime 运行时之二:成员变量与属性
- DataContractJsonSerializer是在System.ServiceModel.Web.dll中,但命名空间却是System.Runtime.Serialization.Json。
- 运行时runtime
- create enum type dynamically(in runtime)
- 使用Runtime+KVC改变TextField光标颜色
- IIS与ASP.NET Http Runtime Pipeline
- OC-RunTime运行时技术的总结具体代码实现
- 无法加载程序集。错误详细信息: Autodesk.AutoCAD.Runtime.Exception: eDuplicateKey
- 使用runtime跳转界面
- Fedora 10 Firefox 安装 Sun Java Runtime Environment(JRE)
- 灵活运用runtime改写系统的方法
- CFS调度器从2.6.25到2.6.29关于min_vruntime更新的跃进
- runtime 如何实现 weak 属性
- ArcGIS Runtime VC++错误解决方法
- 如何写一个FMDB帮助类?看看runtime吧
- 解决:explorer.exe 产生VC++ Runtime 错误的解决办法
- iOS之Runtime
- 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法
- android XListView E/AndroidRuntime(7367):at android.widget.HeaderViewListAdapter.isEnabled