首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS底层原理
订阅
景天儿
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
iOS操作系统-- App启动流程分析与优化
源文件进行预处理(processing),处理预编译指令,生成.i文件,下一步进行编译,进行词法分析(lex工具识别词法规则语义表)、语法分析和语义分析生成.s汇编文件,最后进行汇编,生成二进制目标文件.o。目标文件再进行链接器链接,形成可执行文件.a或mach-o文件。 链接…
iOS底层探索(二) - 写给小白看的Clang编译过程原理
经过上一篇对编译器的基本介绍,相信大家对Clang都有一个基本的认识了,通俗来说是一个编译器的前端,负责分析源代码(就是我们使用的C/OC/C++等)。 预处理顾名思义是预先处理,那预处理都做了哪些事情呢?内容如下。 这么写意思是声明 ClassA 是一个类,这样你就可以使用C…
iOS编译过程
iOS 开发中使用的是编译语言,所谓编译语言是在执行的时候,必须先通过编译器生成机器码,机器码可以直接在CPU上执行,所以执行效率较高。他是使用 Clang / LLVM 来编译的。LLVM是一个模块化和可重用的编译器和工具链技术的集合,Clang 是 LLVM 的子项目,是 …
Parse 的底层多线程处理思路:GCD 高级用法
Parse 源码浅析系列文章的第一篇,作者@iOS程序犭袁 深度解析 Parse 的底层多线程处理思路。
分析oc对象的内存结构及其创建过程
首先分析对象的内存结构,其实我们知道oc的对象指针其实就是结构体指针,也就是说oc的对象转成c++代码后其实就是一个结构体。定义一个简单的类代码如下: 先忽略say方法的存在(方法跟结构体的isa指针相关,稍后再分析),可以看出来 struct Person_IMPL的结构体定…
从runtime源码解读oc对象的引用计数原理
现在我们使用oc编程不用进行手动内存管理得益于ARC机制。ARC帮我们免去了大部分对对象的内存管理操作,其实ARC只是帮我们在合适的地方或者时间对对象进行-retain或-release,并不是不用进行内存管理。 通过我之前分析的oc对象内存结构可以知道,其实对象的引用计数是存…
iOS 消息发送与转发详解
Objective-C 是一门动态语言,它将很多静态语言在编译和链接时期做的事情,放到了运行时来处理。之所以能具备这种特性,离不开 Runtime 这个库。Runtime 很好的解决了如何在运行时期找到调用方法这样的问题。 [myClass printLog] 经过编译后就是调…
iOS App冷启动优化
从用户点击App图标开始到appDelegate didFinishLaunching方法执行完成为止。 T2:main()函数之后,即从main()开始,到appDelegate的didFinishLaunchingWithOptions方法执行完毕前这段时间,主要是构建第一…
深入了解 iOS 的初始化
在 iOS 里面,无论是 Objective-C 还是 Swift,初始化都有一定的规则要求,只不过在 Objective-C 中会比较宽松,如果不按照规则也不会报错,但会存在隐患,而在 Swift 则需要严格按照规则要求代码才能编译通过,极大提高了代码的安全性。 由于在 Sw…
iOS底层探索(一) - 从零开始认识Clang与LLVM
这就需要编译了,在编译的过程中,编译器的作用便是把我们的高级编程语言通过一系列的操作转化成可被计算机执行的机器语言。 三段式架构的价值就体现出来了,通过共享优化器的中转,很好的解决了这个问题。 假如你需要增加一种语言,只需要增加一种前端;假如你需要增加一种处理器架构,也只需要增…