iOS之runtime
2016-05-05 23:06
375 查看
runtime
简介:
1.通过 Objective-C
直接编写 Objective-C 代码 在程序运行期间会自动将代码转换成相应的结构体和函数。
2.通过NSObject的方法 NSObject方法定义了许多方法用来直接调用Runtime里面的方法
isKindOfClass:;isMemberOfClass:
respondsToSelector:
conformsToProtocol:
methodForSelector:
3.直接操作runtime方法
runtime系统是一个C语言静态库,它拥有许多函数和结构体数据 需要导入<objc/runtime.h>
Class:Class结构体主要存储类的实例变量和实例方法
OC编译之后 类是由Class表示 实际指向objc_class结构体
isa:指向metaClass(元类) 存储类的类方法和类变量
super_class:指向父类
methodLists:该类的方法列表
ivars:存储类的成员变量的信息
Method:是runtime内部定义的函数,用来代表一个方法
介绍:
SEL method_name:方法选择器的名字 用来区分方法的ID
获取SEL的方法
1、@selector()
2、NSSelectorFromString()
3、sel_registerName函数
char *method_types:类型 存储着方法的参数类型和返回值类型
IMP method_imp:指向此方法的具体实现 指向的方法在内存中的位置
Ivar:实例变量
使用
获取类名:class_getName
获取父类名:class_getSuperclass
获得实例变量的大小:class_getInstanceSize
获得方法名:method_getName
获得方法的实现:method_getImplementation
获得方法的参数 和返回值类型的字符串:method_getTypeEncoding
获得方法参数的个数:method_getNumberOfArguments
设置实现方法:method_setImplementation
交换两个方法:method_exchangeImplementations
发送消息:objc_msgSend
添加重写 一个方法:class_addMethod
替换方法:class_replaceMethod
获得实例方法:class_getInstanceMethod
获得所有实例方法:class_copyMethodList
获得方法的实现IMP:class_getMethodImplementation
查询是否响应某个方法:class_respondsToSelector
简介:
1.通过 Objective-C
直接编写 Objective-C 代码 在程序运行期间会自动将代码转换成相应的结构体和函数。
2.通过NSObject的方法 NSObject方法定义了许多方法用来直接调用Runtime里面的方法
isKindOfClass:;isMemberOfClass:
respondsToSelector:
conformsToProtocol:
methodForSelector:
3.直接操作runtime方法
runtime系统是一个C语言静态库,它拥有许多函数和结构体数据 需要导入<objc/runtime.h>
Class:Class结构体主要存储类的实例变量和实例方法
OC编译之后 类是由Class表示 实际指向objc_class结构体
isa:指向metaClass(元类) 存储类的类方法和类变量
super_class:指向父类
methodLists:该类的方法列表
ivars:存储类的成员变量的信息
Method:是runtime内部定义的函数,用来代表一个方法
介绍:
SEL method_name:方法选择器的名字 用来区分方法的ID
获取SEL的方法
1、@selector()
2、NSSelectorFromString()
3、sel_registerName函数
char *method_types:类型 存储着方法的参数类型和返回值类型
IMP method_imp:指向此方法的具体实现 指向的方法在内存中的位置
Ivar:实例变量
使用
获取类名:class_getName
获取父类名:class_getSuperclass
获得实例变量的大小:class_getInstanceSize
获得方法名:method_getName
获得方法的实现:method_getImplementation
获得方法的参数 和返回值类型的字符串:method_getTypeEncoding
获得方法参数的个数:method_getNumberOfArguments
设置实现方法:method_setImplementation
交换两个方法:method_exchangeImplementations
发送消息:objc_msgSend
添加重写 一个方法:class_addMethod
替换方法:class_replaceMethod
获得实例方法:class_getInstanceMethod
获得所有实例方法:class_copyMethodList
获得方法的实现IMP:class_getMethodImplementation
查询是否响应某个方法:class_respondsToSelector
相关文章推荐
- iOS代码加密常用加密方式
- iOS开发最简单的让你的Cell自适应高度
- iOS开发-你真的会用SDWebImage?
- ios开发环境配置及cordova安装与常用命令
- iOS 基础知识
- iOS---archive(归档)的总结
- ios ---对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- iOS 几种TouchEvent操作
- iOS-MJExtension一句话搞定对象归档
- iOS怎么给颜色设置透明度?
- ios中不能以new开头
- 关于xcode7.3设置启动图片的小提示
- iOS应用数据存储的常用方式
- [iOS] WSHorizontalPickerView 图片水平滚动封装
- ios学习笔记之三- iPhone模拟器基本操作
- iOS -- MJExtension框架介绍
- iOS项目上线流程视频分享
- iOS-判断URL是否可用,判断网址是否正确
- iOS多线程的初步研究(八)-- dispatch队列
- iOS多线程的初步研究(七)-- dispatch对象