使用Xcode编译 安装编译工具 首先,使用Homebrew安装cmake和nijia 我的电脑本地编译工具环境为 拉取源码 在家目录新建文件夹swift-source,并从...
一、先说注意点,很重要 如果你的APP引入的三方库或者系统库适用范围大于Deployment Target里面的数值,项目是无法运行的。所以Deployment Target...
在 WWDC 2016 和 2017 都有提到启动这块的原理和性能优化思路,可见启动时间,对于开发者和用户们来说是多么的重要,本文就谈谈如何精确的度量 App 的启动时间,启...
之前在使用Swift的过程中没有注意到这两者的区别,最近看到一篇文章介绍二者的区别,记下笔记。 接下来看下二者的定义 从以上可以看出Any和AnyObject都是协议而且,并...
一、应用程序加载原理 在分析dyld加载应用程序之前,先清楚以下基本概念。库:可执行的二进制文件,可以被系统加载到内存。库分为静态库和动态库,动态和静态库的区别是链接的区别。...
引言: 众所周知,我们的iOS应用是通过Dyld进行加载的,那么Dyld是如何加载我们的应用的,它的流程是怎样的,下面我们把dyld的加载分为几个步骤做个简短的分析。 1 d...
dyld加载流程图 建议大家在阅读文章的时候,结合流程图阅读。这样方便理解这个流程,可以将图片下载到本地,一边阅读一边比对。 1、dyld 1.1 简介dyld(The dy...
前言 我们知道OC的上层方法调用时,在底层都会转化为objc_msgSend调用,那么它的流程是怎么样的呢,我们又如何理解它, 我们带着这些疑问来分析objc_msgSend...
建议先看下 Objc4-818底层探索(九):msgSend消息发送(二): 慢速查找[//www.greatytc.com/p/33566f37a123] 名词解...
上篇文章分析了 消息慢速查找[//www.greatytc.com/p/db43c28e0e11] 流程,当消息找不到的时候会执行_objc_msgForward_...
当lookupImpOrForward函数从cache和methodTable中找不到对应Method,继续向下执行就会来到resolveMethod_locked函数也就是...
我们之前分析了消息查找流程 首先,调用objc_msgSend,从cache中快速查找,命中就执行对应的imp 其次,如果cache中没有找到,就调用lookUpImpOrF...
alloc探索 通过这篇文章可以知道什么: alloc方法是如何开辟内存的,开辟了多少内存? 在alloc过程中内存、指针有什么关系? alloc是如何开辟内存空间的? 如何...
汇编语言的发展 机器语言 由0和1组成的机器指令(本质上就是有电和没电) 在早期变成过程中,由于使用机器码这种方式很难受,慢慢的衍生除了助记符,如: 加:0100 0000 ...