首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Lawliet的iOS底层实验室
LabLawliet
创建于2021-06-26
订阅专栏
iOS底层探究
等 32 人订阅
共23篇文章
创建于2021-06-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
LabLawliet
1年前
iOS
Objective-C
iOSer的自我修养|weak原理与SideTable
「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。 题目 我们先看一个小题目,看看下面的输出回事什么样的? 输出: 前言 前面在对内存管理进行研究的时候接触到了 Side
184
3
评论
LabLawliet
1年前
iOS
Objective-C
iOSer的自我修养|从一个面试题看TaggedPointer
之前我们在[WWDC20-runtime优化]中有初步接触到了 `TaggedPointer` 。本文就讲结合一个面试题加深对它的理解。
194
2
评论
LabLawliet
1年前
iOS
Objective-C
iOS内存管理|你真的理解Retain和Release了么?结合一个题目聊聊
iOS提到内存管理Retain和Release是肯定会聊到的。一个+1一个-1,是大家都知道的。事实真的如此么,其中又有一些什么门道你知道么?今天我们从一个题目出发来聊一聊。
498
3
评论
LabLawliet
1年前
iOS
编译器
被嫌弃的源码的一生:从Clang、LLVM到MachO
我们的代码是怎么从源码到可执行文件MachO的呢?我们写的所有垃圾代码都会在里面么?本文将带你一步步了解MachO的一生
2000
17
评论
LabLawliet
1年前
iOS
Objective-C
iOSer的自我修养|关于Block你所该知道的一切
本文将从几个面试题出发,从OC到C++再深入底层源码,带你熟悉关于block一个iOSer所该知道的一切。
1810
22
5
LabLawliet
1年前
iOS
Swift
iOS多线程(四)|递归锁
锁的常见分类 提到锁的分类一般都能说出两种:互斥锁、自旋锁。其实锁还有一些更细分的类型,下面我们就来看看递归锁
1125
3
1
LabLawliet
1年前
数据结构
iOS
iOS多线程(三)|iOS@synchronized源码解析与单向链表的妙用
阅读源码一方面能够使我们认识到一些东西的实现原理,更能从中看到一些精妙的设计。本文就将结合 @synchronized 源码感受苹果工程师对单向链表的妙用。本文基于 objc4-818.2 源码。
1584
5
评论
LabLawliet
1年前
Swift
iOS
iOS多线程(二)|从Swift看GCD栅栏函数
前言 最近在 Swift 中想用到栅栏函数,结果犯了难,怎么调用写不出来,也是稍微查了一下才知道怎么样用。就顺手总结回顾一下栅栏函数吧。
3754
15
评论
LabLawliet
1年前
Objective-C
iOS
iOS多线程(一)|多线程原理与atomic
线程 也被称为 轻量级进程 ,是程序执行流程的最小单元。一个标准的线程由 线程ID、当前指令指针PC、寄存器集合 和 堆栈 组成。
292
2
评论
LabLawliet
1年前
iOS
Objective-C
iOS-探索KVO|中间类与ISA变换
使用 KVO 过程中动态生成了中间类,中间类和本类是继承关系,同时重写了本类的一些方法。自动监听开关对与中间类的结构是有影响的。被观察者 ISA 的指向会发生变化。
572
4
评论
LabLawliet
1年前
面试
iOS-探索KVO|隐秘的角落
KVO在开发中还是经常使用的,但是有些隐秘的角落却经常被忽视,本文将对这些角落进行一些探究。 来自Apple的重要提示:为了能理解 KVO ,必须先理解 KVC。
249
3
2
LabLawliet
1年前
iOS
性能优化
iOS独立开发的二进制重排实践|新瓶装旧酒
近两年二进制重排在启动优化上还是经常被提到的,但自己没有尝试过。继上一次「iOS官方瘦身方案ODR(二):换肤系统改造|践行 On-Demand Resources」后,再次拿自己个人项目小白鼠「梦见
1773
14
评论
LabLawliet
1年前
iOS
Objective-C
iOS-KVC详解
【Lawliet的iOS游园会】KVC这么常用,你是否了解它的Set/Get过程呢?这里就结合Demo和我一起看看吧
610
3
评论
LabLawliet
1年前
Objective-C
iOS
MethodSwizzing方法交换的坑|伤敌一千自损八百
MethodSwizzing方法交换是比较常用的所谓黑魔法。但正如武侠小说中的绝世武功一般,也存在使用不恰当发生伤敌一千,自损八百的情况。
5559
21
9
LabLawliet
1年前
Objective-C
iOS
【iOS底层实验室】关联对象的赋值与释放
【Lawliet的iOS底层实验室】 为分类添加关联对象是我们比较常用的,但是你真的了解关联对象么?知道它是怎么设置和释放的呢?
611
5
评论
LabLawliet
1年前
iOS
Objective-C
【iOS底层实验室】动态决议与消息转发
在上一文中我们有探究到objc_msgSend相关的一些底层原理。我们发现在慢速查找的过程中有这样forward_imp消息转发resolveMethod动态决议。本文就讲深入源码进行研究
465
1
评论
LabLawliet
1年前
iOS
源码
【iOS应用启动(四)】有关分类的一切| 8月更文挑战
【Lawliet的iOS底层实验室】本文将模拟多种场景,进行源码调试,深入探索分类的加载流程。欢迎交流~
596
5
评论
LabLawliet
1年前
iOS
源码
【iOS应用启动(三)】镜像文件的读取与加载
【iOS应用启动(三)】本文就将深入对镜像文件的读取`map_images`与加载`loadClass`进行解读。
931
7
2
LabLawliet
1年前
iOS
【iOS应用启动(一)】dyld与main函数
【iOS应用启动(一)】每个应用程序都会依赖很多的库,每当应用程序启动,都会将MachO中的可执行文件加载到内存中。那么这个过程是怎样的呢?
922
4
2
LabLawliet
1年前
iOS
【iOS应用启动(二)】环境配置与runtime初始化
【iOS应用启动(二)】本文基于 dyld-832.7.3 与 objc4-818.2 源码。本文主要聊下App启动流程中非常重要的 _objc_init,来了解「环境配置与runtime初始化」
745
1
评论
下一页