首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
末日灬清晨
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 5
沸点 0
赞
5
返回
|
搜索文章
最新
热门
OC内存管理(二) 弱引用表和AutoreleasePool
Weak弱引用表 Weak原理 objc_initWeak 查看汇编可以得知,添加__weak修饰会走到objc_initWeak函数,这个过程是由LLVM来决定的。 storeWeak weak_r
OC内存管理(一) 内存的分区布局和管理方案
内存分区与布局 栈区(Stack) 栈区是一块连续的内存空间,它的结构是从高地址往低地址拉伸,遵循先进后出(FILO)原则 栈区存储的是局部变量,函数,方法,参数,指针 栈区的地址空间一般是以0x7开
iOS多线程GCD(三) 栅栏函数、信号量 、调度组、dispatch_source
栅栏函数 控制任务的执行顺序,导致同步的效果 栅栏函数有两种: dispatch_barrier_async dispatch_barrier_sync dispatch_barrier_async异
iOS多线程GCD(二) 源码分析同步函数、异步函数、单例
同步函数 同步函数是在当前线程执行,不会开辟线程,所以就先从同步dispatch_sync开始入手,然后再查看里面队列的区分 dispatch_sync _dispatch_sync_f _dispa
iOS多线程GCD(一)
多线程基本原理 线程和进程 线程 线程是进程的基本执行单元,一个进程的所有任务都在线程中执行 进程想要执行任务,必须至少有一条线程 程序启动会默认开启一条线程,也就是我们常说的主线程也称为UI线程 进
Runloop详解
前言 在Runloop的 官方文档 中,我们可以看到Runloop是一个死循环模型,线程在执行完任务后会进行休眠,有新的任务需要执行时就会被唤醒。如下图所示 runloop事件类型 一共有6种类型的r
msgSend底层(四)消息转发
前言 在上一篇动态方法决议中中,从消息慢速查找没有找到就会进入动态决议,如果动态决议没有处理,通过崩溃日志可以看到forwardingTargetForSelector和methodSignature
msgSend底层(三)动态方法决议
经典案例 定义一个方法, 本身类和父类都不去实现,就会爆出经典错误unrecognized selector sent to instance xxx,在msgSend底层(二)中,当父类为nil时,
msgSend底层(二)方法的慢速查找
回顾 紧跟msgSend底层(一)方法的快速查找 cache中,我们探究了Runtime快速查找缓存的方法,当缓存没有找到时会进行慢速查找。下面先接着上面的汇编看看 __objc_msgSend_un
msgSend底层(一)方法的快速查找 cache
方法的本质 方法的本质是objc_msgSend(消息发送),而objc_msgSend调用需要消息的接收者和sel+参数 可以通过objc_msgSend直接调用方法 导入头文件#import <o
下一页
个人成就
文章被点赞
26
文章被阅读
13,567
掘力值
573
关注了
0
关注者
17
收藏集
0
关注标签
0
加入于
2021-10-15