iOS之runtime
生活随笔
收集整理的这篇文章主要介绍了
iOS之runtime
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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
转载于:https://www.cnblogs.com/liuzhi20101016/p/5463737.html
总结
以上是生活随笔为你收集整理的iOS之runtime的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Nginx之让用户通过用户名密码认证访问
- 下一篇: MyBatis根据数组、集合查询