runtime ---- iOS

1.runtime是什么?
runtime是一套底层的C语言的API(包括C语言数据类型,C语言函数)

实际上平时我们写的OC代码底层都是基于runtime,实际上也就是最后都转成了runtime代码

比如:[recevier message]实际转换成objc_msgSend(recevier,selector)

2.runtime的作用

*能动态产生一个类 一个成员变量 一个方法

*能动态修改一个类 一个成员变量 一个方法

*能动态删除一个类 一个成员变量 一个方法

时间: 2024-08-25 06:27:52

runtime ---- iOS的相关文章

iOS 常见知识点(三):Lock

iOS 常见知识点(一):Runtime iOS 常见知识点(二):RunLoop 锁是最常用的同步工具.一段代码段在同一个时间只能允许被有限个线程访问,比如一个线程 A 进入需要保护代码之前添加简单的互斥锁,另一个线程 B 就无法访问,只有等待前一个线程 A 执行完被保护的代码后解锁,B 线程才能访问被保护代码. iOS 中的八大锁 NSLock @protocol NSLocking - (void)lock; - (void)unlock; @end @interface NSLock :

iOS知识点大纲

Xcode使用 1. 创建UI工程 基本控件 2. UILabel标签 3. UIButton按钮 项目: 计算器项目 4. UIImageView(UIImage)   项目: 人人界面 5. UIView 视图+触摸   项目: 人人界面 6. UITextField输入框/电子词典 7. iOS常用控件 8. 手势操作 视图控制器和多视图程序 9. UIViewController 10.UINavigationController 项目: 人人界面模拟 11. UITabBarContr

一行代码实现iOS序列化与反序列化

一.变量声明 为便于下文讨论,提前创建父类Biology以及子类Person: Biology: @interface Biology : NSObject { NSInteger *_hairCountInBiology; } @property (nonatomic, copy) NSString *introInBiology; @end @implementation Biology @end Person: #import #import "Biology.h" #impor

iOS runtime机制 和数据库结合 使用方便开发

1 首先说一下 runtime 运行机制 对于OC 这门高级编程语言 其实在语言底层的实现 是用C语言来实现的 一个OC的类 翻译成C 语言其实就是一个结构体的类型,当然结构体是非常复杂的包括了这个类的所有信息,类的继承还是有点难度的,暂时不用考虑类的继承的问题,只要知道OC类 底层是转换成 C语言的结构体! 我们先看一下 OC 是怎样发送消息的 也就是对应C语言是如何实现函数的调用的过程! [obj makeText];   //obj 这个类发送了一个  makeText的消息 之后runt

iOS小技巧--用runtime 解决UIButton 重复点击问题

iOS小技巧–用runtime 解决UIButton 重复点击问题 什么是这个问题 我们的按钮是点击一次响应一次, 即使频繁的点击也不会出问题, 可是某些场景下还偏偏就是会出问题. 通常是如何解决 我们通常会在按钮点击的时候设置这个按钮不可点击. 等待0.xS的延时后,在设置回来; 或者在操作结束的时候设置可以点击. - (IBAction)clickBtn1:(UIbutton *)sender { sender.enabled = NO; doSomething sender.enabled

iOS开发——高级特性&Runtime运行时特性详解

Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 Runtime术语 消息 动态方法解析 消息转发 健壮的实例变量(Non Fragile ivars) Objective-C Associated Objects Method Swizzling 总结 引言 曾经觉得Objc特别方便上手,面对着 Cocoa 中大量

iOS开发之runtime运行时机制

最近参加三次面试都有被问到runtime,也不知道面试官们自己懂不懂,反正就喜欢问,似乎就想把我唬住,来显示自己的对OC底层知识的理解很牛逼似的.(我现在开始看面试题,发现他们都喜欢问面试题的问题,我算明白了,都是应试教育惹的祸,大概他们以前没什么实际的app经验,所以准备了很多面试题,而我真的是能写app,先干活再找方法的人,面试不多,没什么面试经验,看来要开始碰壁多次才能掌握中国式面试).因为不太懂runtime我就只能支支吾吾的说点零碎.我真的好几次努力想看一看runtime的知识,因为知

ios runtime swizzle

ios runtime swizzle @implementation NSObject(Extension) + (void)swizzleClassMethod:(Class)class originSelector:(SEL)originSelector otherSelector:(SEL)otherSelector { Method otherMehtod = class_getClassMethod(class, otherSelector); Method originMehtod

iOS运行时 -- Runtime(摘抄自网络)

运行时(iOS) 一.什么是运行时(Runtime)? 运行时是苹果提供的纯C语言的开发库(运行时是一种非常牛逼.开发中经常用到的底层技术) 二.运行时的作用? 能获得某个类的所有成员变量 能获得某个类的所有属性 能获得某个类的所有方法 交换方法实现 能动态添加一个成员变量 能动态添加一个属性 能动态添加一个方法 三.案例:运行时获取成员变量名称 1.分析 #import <Foundation/Foundation.h> #import "XMGPerson.h" #im