首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
烟火_jason
掘友等级
iOSer
我就是我,不一样的烟火
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
35
文章 35
沸点 0
赞
35
返回
|
搜索文章
最新
热门
iOS的OC的block底层原理
1. Block的基础 Block是一个OC的对象,它封装了一段代码,这段代码可以在任何时候执行。Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。可以嵌套定义,可以定义在方法内部和外部。 在实际开发中使用的Block,根据内存情况,可以将其分为3种…
iOS中的锁
1. 锁的种类 我们都知道锁有八大锁,分别是OSSpinLock,dispatch_semaphore,pthread_mutex,NSLock,NSCondition,NSConditionLock,@synchronized和NSRecursiveLock。但是锁的种类有多…
iOS的多线程的基础
1. 线程与进程 现在的iOS开发都是单进程的。下面就是简单介绍一下有关线程与进程之间的关系和定义。 线程是进程的基本执行单元,一个进程中的所有任务都在线程中执行。 进程要想执行任务,必须得有线程,进程至少要有一条线程。 程序启动会默认开启一条线程,这条线程被称为主线程或者UI…
iOS的OC类的加载
在dyld的加载流程中,从dyld源码过度到objc源码的过程是在objc_init这个函数。接下来会先介绍objc_init。 1. objc_init _objc_init函数是在运行时执行到的,下面对里面的各个函数的简单介绍。 environ_init():读取影响运行时…
iOS的dyld加载流程
在App的加载过程中会依赖很多底层的库,但是库是什么呢?库就是可执行代码的二进制,可以被操作系统识别写入到内存中的。在底层库中有分别有静态库和动态库。 预编译:主要是宏替换,导入的头文件替换成头文件里面的代码,将#开头的预编译指令展开,比如#define,#include,#i…
iOS的OC的方法的决议与消息转发原理
OC的方法的查找是通过消息的发送来查找函数的IMP,首先通过objc_msgSend来进行快速查找(cache_t),如果快速找不到,就需要进行方法的慢速查找,具体可以了解iOS的OC的方法的查找原理这篇文章。但是,如果通过快速和慢速的查找都找不到的话,就会直接报错。为了接下来…
iOS的OC的方法的查找原理
iOS的开发中我们会使用类中的各种方法,在OC中对方法的调用称为消息的发送。对方法函数的使用每一个iOS开发者都很熟悉的,但是方法函数是怎么在底层中是怎么查找的就是这篇文章主要来介绍的。 1. 方法的本质 其中sel_registerName函数相当于@selector,在Te…
iOS的OC的方法缓存的源码分析
在日常开发中,我们调用方法的时候有没有想过一个问题,在我们频繁地调用方法,为了高效苹果会不会对使用过的方法做缓存起来?如果有做缓存的话,具体是怎样做的呢?为了了解这块的内容,本篇文章就对cache_t做源码分析。 从源码可以知道,通过将方法编号SEL和函数地址IMP缓存在buc…
iOS的OC源码分析之类的结构分析
开始介绍类的结构之前,请问一下,你在开发的过程中有没有想过一个问题。就是创建多个相同类型的对象的时候,那么这个对象的类是不是多个呢?带着这个问题,有了如下不同形式获取到类的代码 从上面的运行结果可以知道,类在内存里面只存在一份。 还是使用苹果的objc4-756.2源码来学习的…
iOS的OC的isa的底层原理
isa指针:在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。也就是说在对象创建的时候就会有isa指针初始化了。为了搞清楚还是需要用到OC对象创建的alloc原理里面源码的_class_createInstanc…
下一页
个人成就
文章被点赞
86
文章被阅读
25,637
掘力值
739
关注了
46
关注者
65
收藏集
14
关注标签
30
加入于
2017-08-28