如果你已经能独立写出一个能上架的 iOS App,却说不清 objc_msgSend 到底做了什么、autoreleasepool 在什么时候把对象放掉、一次列表滑动卡顿到底卡在 CPU 还是 GPU,那这门课针对的就是这个缺口。它不是给零基础的人讲语法,也不是给"会拖控件"的人再复习一遍 UIButton 怎么用,而是把日常开发中那些"能用但不知道为什么"的地方翻出来,一个一个补上。

先确认:这些坑你是不是踩过

  • 面试被问到 runtime 的消息转发流程,只能背出三个阶段的名字,说不出实际项目里什么时候会用到。
  • 内存涨了、被系统杀了,第一反应是"内存泄漏吧",但 Instruments 打开之后不知道该看哪一栏。
  • 列表滑动掉帧,试了圆角、阴影、图片解码,改完好像好一点,又说不出到底哪一项起了作用。
  • 代码越写越乱,想分层但不知道该按什么边界切,最后又回到"一个 ViewController 管全部"。
  • 启动速度、包体积这类指标,知道该优化,但没量过,也不知道从哪个数开始算正常。

这些问题的共同点是:它们不属于"会不会写"的范畴,而属于"看不看得懂运行过程"。这门课的内容就是围绕这几条线展开的。

内容大致集中在三块

一是底层机制:runtime、内存、线程

这部分回答的是"语法糖下面发生了什么"。消息发送怎么变成一次查找、KVO 为什么能监听、block 捕获变量为什么会引发循环引用、GCD 队列和线程到底是什么关系。学这块不是为了炫技,而是为了在出现诡异 bug 时,你能顺着机制往下推,而不是靠改代码碰运气。

二是性能:滑动、启动、耗电、体积

卡顿和启动慢是最容易被用户感知、也最容易被开发者忽略的两件事。这里会涉及渲染管线各阶段的耗时归属、离屏渲染的代价、主线程被什么占住、启动阶段哪些工作可以推迟。重点是学会"先量再改"——把 Instruments 里的数据和代码对应起来,而不是凭感觉调优。

三是架构:分层、解耦、可测试

当项目规模上去之后,问题不再是某个函数怎么写,而是"这段逻辑该放在谁那里"。这部分讨论的是模块边界怎么定、依赖怎么注入、状态怎么管理,目标是让代码在加需求时不需要大改。

怎么用这份材料

  • 别顺序刷完。先对着上面那份坑的清单,挑两三条自己真实遇到过的,只学对应的部分。剩下的先放着。
  • 每学一个机制,回自己的项目里找一处对应代码。比如学到 autoreleasepool,就去翻一遍主线程 runloop 的代码路径。找得到,才算真的接了地。
  • 性能部分一定要动手测。只在旁边看别人演示 Instruments,看完还是不会用。拿自己项目里最卡的那个页面当实验对象。
  • 架构部分先想清楚再照着改。没有统一答案,重点是理解每种做法的代价,而不是抄一个模板。

看完应该能回答的问题

  • 一条消息从发出到执行,中间经过了哪些步骤?哪一步最可能出问题?
  • 一次列表滑动,时间花在了哪些环节?怎么定位到具体是哪一个?
  • App 从点击图标到首屏可见,中间发生了什么?哪些事情可以挪到之后做?
  • 内存占用持续上涨,如何区分是真泄漏、是缓存没清、还是系统本身的正常行为?
  • 面对一个正在变乱的项目,你会按什么依据划模块边界?

如果上面这些问题你能答出一半以上,这门课对你的价值有限,可以直接跳过。如果答不上来的比你预想的多,那就从最没底的那一块开始补。技术上的短板不会因为你少看一眼就消失,它只会在某次线上事故里等着你。

����ʱ��iOS�������ֿ�

����iOS����������������App

�༭����

ϵͳ����iOS����֪ʶ��ϵ�������ڴ�����������Ż����ܹ���Ƶȣ��ʺϽ��׿����ߡ�

? �༭�Ƽ�

�ӻ��������ף�ȫ�����iOS�������ļ��������ʵ����

����̽���ڴ�����������Ż����ܹ���Ƶȹؼ�����

�����Լ���iOS����֪ʶ��ϵ�������������ܡ�

�����

? ϵͳ֪ʶ��ϵ
? ������
? �ܹ����

�γ�Ŀ¼

����ʱ��iOS�������ֿ��ĵ�.png  [493.5 KB]
21   ���� Cocoa iOS����������Щ GUI ��ܿ���.mp3  [6.1 MB]
36   iOS ����ô�����ڴ��.pdf  [438.3 KB]
27_�����_Flexbox_˼·����_���Զ����ֱ�_Flexbox_������.mp3  [5.4 MB]
03   Auto Layout ����ô�����Զ����ֵ� �������.mp3  [5.4 MB]
07_Clang_Infer_��_OCLint_����Ӧ��ʹ��˭������̬����.mp3  [7.6 MB]
22_ϸ˵_iOS_��Ӧʽ��ܱ�Ǩ_��Щ˼�����Ϊ������.pdf  [547.0 KB]
23   ��ι�����ŵ�����Ч���͹�������Ч��.mp3  [4.5 MB]
01   �������Լ���iOS����֪ʶ��ϵ.mp3  [5.2 MB]
10_����С_��δ���Դ�ʹ������ʵ��ȫ��λ����.pdf  [3.3 MB]
27_�����_Flexbox_˼·����_���Զ����ֱ�_Flexbox_������.pdf  [883.8 KB]
25   ���������ײ�ķ����Ͷ����¼�����.mp3  [4.3 MB]
33   iOS ϵͳ�ں� XNU App ��μ���.mp3  [5.6 MB]
09   ���������㷽�����ʵ��.pdf  [593.7 KB]
15   ��־��� ������ȡ App �е�ȫ����־.pdf  [478.4 KB]
21   ���� Cocoa iOS����������Щ GUI ��ܿ���.pdf  [529.6 KB]
37   ��α�д Clang ���.pdf  [519.0 KB]
40   React Native Flutter �� ��Щ��˷�����ôѡ.pdf  [433.4 KB]
16   ���ܼ�� ���� App �������ǰѳ�.pdf  [1.5 MB]
17   Զ��������Ķ��̵߳���Щ��.pdf  [508.8 KB]
13   ������� RunLoop ԭ��ȥ��ؿ���.mp3  [5.1 MB]
41_ԭ������ת��ǰ�˲���_����˼·����Щת��.pdf  [626.4 KB]
14_�ٽ�_OOM_��λ�ȡ��ϸ�ڴ������Ϣ_�����ڴ�����.mp3  [5.4 MB]
29_�����_iOS_�н��������������������������Ϊ��������.pdf  [359.5 KB]
30_����ƶ�һ���ʺ��Լ��Ŷӵ�_iOS_����淶.mp3  [5.3 MB]
19   �ȵ�������� ��  ����ģ���������.pdf  [390.3 KB]
28   ��ôӦ�Ը��ָ��ı���������.pdf  [409.6 KB]
23   ��ι�����ŵ�����Ч���͹�������Ч��.pdf  [526.1 KB]
17   Զ��������Ķ��̵߳���Щ��.mp3  [6.3 MB]
20   iOS���������ѧϰ·����ʲô.mp3  [7.3 MB]
02   App �����ٶ���ô���Ż�����.mp3  [8.9 MB]
12   iOS ����ǧ��ٹ� ���ȫ����.mp3  [7.8 MB]
32   �ȵ�������� ��.pdf  [854.7 KB]
06_App_���ͨ��ע�붯̬��ķ�ʽʵ�ּ��ٱ������.pdf  [1.4 MB]
34   iOS ��ħ�� Runtime Method Swizzling �����ԭ��.mp3  [4.3 MB]
13   ������� RunLoop ԭ��ȥ��ؿ���.pdf  [729.4 KB]
31   iOS ����ѧϰ���Ϻ��鵥�Ƽ�.mp3  [3.6 MB]
39_��ͨǰ����ԭ��������_JavaScriptCore_�ܸ���Щ����.pdf  [584.5 KB]
02   App �����ٶ���ô���Ż�����.pdf  [2.7 MB]
42   iOSԭ�� ��ǰ�˺�Flutter�ֱ�����ô��Ⱦ��.pdf  [407.8 KB]
������   ������ ���.mp3  [2.2 MB]
20   iOS���������ѧϰ·����ʲô.pdf  [529.6 KB]
24   A-B ���� ��֤����Ч��������.pdf  [482.5 KB]
03   Auto Layout ����ô�����Զ����ֵ� �������.pdf  [1.9 MB]
43_����ʹ_App_���ж�̬�����ȸ��������ķ���.pdf  [398.7 KB]
09   ���������㷽�����ʵ��.mp3  [4.5 MB]
29_�����_iOS_�н��������������������������Ϊ��������.mp3  [4.5 MB]
26   ������ JSON ����������.pdf  [860.6 KB]
35   libffi ��̬���úͶ��� C ����.mp3  [6.8 MB]
��ƪ��   ê��һ���� Ȼ��������������.mp3  [4.3 MB]
04   ��Ŀ������Ա���� �ܹ���ô��Ƹ�����.pdf  [1.8 MB]
14_�ٽ�_OOM_��λ�ȡ��ϸ�ڴ������Ϣ_�����ڴ�����.pdf  [650.2 KB]
16   ���ܼ�� ���� App �������ǰѳ�.mp3  [5.5 MB]
19   �ȵ�������� ��  ����ģ���������.mp3  [8.3 MB]
07_Clang_Infer_��_OCLint_����Ӧ��ʹ��˭������̬����.pdf  [691.5 KB]
08   ������� Clang Ϊ App ����.mp3  [5.8 MB]
05   ������ ��������ô�󶨵���ַ�ϵ�.mp3  [7.6 MB]
01   �������Լ���iOS����֪ʶ��ϵ.pdf  [1.1 MB]
18   ���� App ��������.mp3  [3.8 MB]
42   iOSԭ�� ��ǰ�˺�Flutter�ֱ�����ô��Ⱦ��.mp3  [4.7 MB]
31   iOS ����ѧϰ���Ϻ��鵥�Ƽ�.pdf  [447.5 KB]
12   iOS ����ǧ��ٹ� ���ȫ����.pdf  [1.7 MB]
28   ��ôӦ�Ը��ָ��ı���������.mp3  [4.1 MB]
36   iOS ����ô�����ڴ��.mp3  [5.6 MB]
37   ��α�д Clang ���.mp3  [6.4 MB]
39_��ͨǰ����ԭ��������_JavaScriptCore_�ܸ���Щ����.mp3  [6.0 MB]
10_����С_��δ���Դ�ʹ������ʵ��ȫ��λ����.mp3  [10.4 MB]
24   A-B ���� ��֤����Ч��������.mp3  [4.6 MB]
34   iOS ��ħ�� Runtime Method Swizzling �����ԭ��.pdf  [362.2 KB]
06_App_���ͨ��ע�붯̬��ķ�ʽʵ�ּ��ٱ������.mp3  [2.9 MB]
�û�����   �������ѧϰ���ר����.pdf  [358.6 KB]
25   ���������ײ�ķ����Ͷ����¼�����.pdf  [459.8 KB]
04   ��Ŀ������Ա���� �ܹ���ô��Ƹ�����.mp3  [9.9 MB]
08   ������� Clang Ϊ App ����.pdf  [743.5 KB]
18   ���� App ��������.pdf  [469.9 KB]
38   �ȵ�������� ��.pdf  [300.9 KB]
15   ��־��� ������ȡ App �е�ȫ����־.mp3  [7.0 MB]
��ƪ��   ê��һ���� Ȼ��������������.pdf  [539.5 KB]
41_ԭ������ת��ǰ�˲���_����˼·����Щת��.mp3  [5.4 MB]
40   React Native Flutter �� ��Щ��˷�����ôѡ.mp3  [4.8 MB]
30_����ƶ�һ���ʺ��Լ��Ŷӵ�_iOS_����淶.pdf  [398.6 KB]
������   ������ ���.pdf  [377.0 KB]
�û�����   �������ѧϰ���ר����.mp3  [9.0 MB]
11   �ȵ�������� һ  ����ģ���������.pdf  [500.8 KB]
26   ������ JSON ����������.mp3  [5.2 MB]
33   iOS ϵͳ�ں� XNU App ��μ���.pdf  [528.9 KB]
38   �ȵ�������� ��.mp3  [4.2 MB]
43_����ʹ_App_���ж�̬�����ȸ��������ķ���.mp3  [6.3 MB]
11   �ȵ�������� һ  ����ģ���������.mp3  [7.2 MB]
35   libffi ��̬���úͶ��� C ����.pdf  [334.5 KB]
05   ������ ��������ô�󶨵���ַ�ϵ�.pdf  [1.6 MB]
22_ϸ˵_iOS_��Ӧʽ��ܱ�Ǩ_��Щ˼�����Ϊ������.mp3  [5.0 MB]
32   �ȵ�������� ��.mp3  [4.4 MB]

�ʺ���Ⱥ

  • iOS����������
  • ��־�������˽�iOS�����ļ�����Ա

ѧϰ�ջ�

����iOS���������
����App����
����������

ף��ѧϰ��죡

ѧ�����ɣ�ǰ���ƽ���