首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
烟火_jason
掘友等级
iOSer
我就是我,不一样的烟火
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
35
文章 35
沸点 0
赞
35
返回
|
搜索文章
最新
热门
iOS的OC对象的内存对齐
从中可以看到的0x101a5e050是对象的指针的首地址,每一行的开头部分都是这一行的内存值的开始的排列。而0x0000001300006261这部分的是内存的值,这些内存的值都是从对象的首地址来依次的排列的。 将0x0000001300006261拆分出来打印就可以得到了,其…
iOS的OC对象创建的alloc原理
当然,这种方式是对整个项目对全局操作的,那么就在需要用到的时候,先打断点,然后再开启。 2.配合系统断点的形式来就可以一步一步看到alloc底层的每一步的流程。通过这样的方式可以找到alloc的底层的入口,是objc_alloc底层方法 通过系统的断点,知道objc_alloc…
iOS的OC的isa的底层原理
isa指针:在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。也就是说在对象创建的时候就会有isa指针初始化了。为了搞清楚还是需要用到OC对象创建的alloc原理里面源码的_class_createInstanc…
iOS的dyld加载流程
在App的加载过程中会依赖很多底层的库,但是库是什么呢?库就是可执行代码的二进制,可以被操作系统识别写入到内存中的。在底层库中有分别有静态库和动态库。 预编译:主要是宏替换,导入的头文件替换成头文件里面的代码,将#开头的预编译指令展开,比如#define,#include,#i…
iOS的OC的方法缓存的源码分析
在日常开发中,我们调用方法的时候有没有想过一个问题,在我们频繁地调用方法,为了高效苹果会不会对使用过的方法做缓存起来?如果有做缓存的话,具体是怎样做的呢?为了了解这块的内容,本篇文章就对cache_t做源码分析。 从源码可以知道,通过将方法编号SEL和函数地址IMP缓存在buc…
iOS的OC的方法的决议与消息转发原理
OC的方法的查找是通过消息的发送来查找函数的IMP,首先通过objc_msgSend来进行快速查找(cache_t),如果快速找不到,就需要进行方法的慢速查找,具体可以了解iOS的OC的方法的查找原理这篇文章。但是,如果通过快速和慢速的查找都找不到的话,就会直接报错。为了接下来…
iOS的OC类的加载
在dyld的加载流程中,从dyld源码过度到objc源码的过程是在objc_init这个函数。接下来会先介绍objc_init。 1. objc_init _objc_init函数是在运行时执行到的,下面对里面的各个函数的简单介绍。 environ_init():读取影响运行时…
iOS的OC的block底层原理
1. Block的基础 Block是一个OC的对象,它封装了一段代码,这段代码可以在任何时候执行。Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。可以嵌套定义,可以定义在方法内部和外部。 在实际开发中使用的Block,根据内存情况,可以将其分为3种…
iOS的Key-Value Coding
KVC是许多其他Cocoa技术的基础概念,例如 KVO,Cocoa bindings, Core Data, 和AppleScript-ability。 在OC中,对象从NSObject(直接或间接)继承时,通常都是实现了NSKeyValueCoding协议,又为基本方法提供默…
iOS的OC的方法的查找原理
iOS的开发中我们会使用类中的各种方法,在OC中对方法的调用称为消息的发送。对方法函数的使用每一个iOS开发者都很熟悉的,但是方法函数是怎么在底层中是怎么查找的就是这篇文章主要来介绍的。 1. 方法的本质 其中sel_registerName函数相当于@selector,在Te…
下一页
个人成就
文章被点赞
87
文章被阅读
29,284
掘力值
751
关注了
47
关注者
66
收藏集
14
关注标签
30
加入于
2017-08-28