首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
微笑敷衍心痛君
掘友等级
iOS开发工程师
|
南京索沃科技有限公司
iOS程序猿、热爱生活,热爱科技
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
39
文章 39
沸点 0
赞
39
返回
|
搜索文章
最新
热门
带你了解autroreleasePool的底层实现原理
相信大家早已对这个问题烂熟于心,但还是带大家一起过一下. 在MRC时代,系统判定一个对象是否销毁是根据这个对象的引用计数器来判断的.其中每个对象被创建时引用计数都为1,每当对象被其他指针引用时,需要手动使用[obj retain];让该对象引用计数+1,当指针变量不在使用这个对…
KVO的自定义
二. 自定义KVO的初探 原来KVO的实现是在NSObject的NSKeyValueObserverRegistration 分类里. 接着我们根据KVO的底层原理实现,开始一步步的自定义. Class newClass = [self createChildClassWith…
KVO的原理探究
附:上篇关于KVC探索的地址 https://juejin.im/post/6844904064610910215. 在之前的开发中,context 我们一般都传nil,或者传NULL.(没特殊情况下,最好传NULL,因为context类型是 void *).但是在比…
带你玩转KVC的底层实现
KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值。而不需要调用明确的存取方法。这样就可以在运行时动态地访问和修改对象的属性。而不是在编译时确定,这也是iOS开发中的黑魔法之一。很多高级的…
带你了解分类的加载流程
其实上篇文章已经介绍了程序一运行如何将编译好的mach-o文件内容如何加载到App内存 里,一开始回来到 _objc_init(void),程序初始化函数,在这里会进行整个程序的一些环境配置、异常配置、静态构析函数配置等,然后会map_images读取镜像文件的过程. 加载所有…
浅谈runtime如何将mach-0文件里的内容加载到App内存里
预编译 --> 编译 --> 汇编 --> dyld 链接 --> 可执行文件(mach-0). dyld 全名 The dynamic link editor . 它是苹果的动态链接器,是苹果操作系统一个重要组成部分 ,在应用被编译打包成可执行文件格式的 Mach-O 文件之…
论objc_msgSend消息机制之消息转发
1.2 类方法也是一样,只不过类方法会在元类里去寻找,然后到元类的父类最后也会来到NSObject. 不过在这里肯定有一个疑问的点,OC是一门动态语言并且也是一门相对安全的语言(如果不安全,苹果公司也不会用OC来进行开发),难道方法在慢速流程找不到时就不做任何处理,直接让其崩溃…
论objc_msgSend消息机制之消息查找
1.对象方法存在类里,类方法会存储在元类里(元类是系统在编译时为我们自动创建的类)类在元类里是以对象方式存在的也就是类对象. 2. 在上篇文章中讨论了方法在类中查找首先通过快速查找机制会先从类里cache_t先去查找,如果cache命中就触发消息发送,如果缓存没有命中,就会通过…
论objc_msgSend消息机制之前传
runtime的使用方式主要有三种 : ObjectIve-C调用 @selector()、NSObject的方法 NSSelectorFromString()、sel_registerName. 函数api 首先我们在main.m 文件里,创建了个LGPerson的对象并调用…
cache_t的结构分析
上篇文章已经讨论过类的的结构是个结构体 里面有 isa、superclass、cache_t、 class_data_bits_t bits,这样我们可用通过x/p 4gx Class 看到类的内存地址信息,首地址(isa)偏移16位得到cache_t所在的指针地址. 可以看到…
下一页
个人成就
文章被点赞
83
文章被阅读
11,731
掘力值
457
关注了
31
关注者
34
收藏集
1
关注标签
9
加入于
2019-12-23