欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

iOS之runtime

发布时间:2025/4/16 编程问答 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。