240 发简信
IP属地:上海
  • 120
    超实用~使用 Xcode 编译 Swift 源码

    使用Xcode编译 安装编译工具 首先,使用Homebrew安装cmake和nijia 我的电脑本地编译工具环境为 拉取源码 在家目录新建文件夹swift-source,并从...

  • 120
    iOS 配置Xcode中的 Deployment Target的注意点 ,用于支持8.0以下版本的手机

    一、先说注意点,很重要 如果你的APP引入的三方库或者系统库适用范围大于Deployment Target里面的数值,项目是无法运行的。所以Deployment Target...

  • 120
    如何精确度量 iOS App 的启动时间

    在 WWDC 2016 和 2017 都有提到启动这块的原理和性能优化思路,可见启动时间,对于开发者和用户们来说是多么的重要,本文就谈谈如何精确的度量 App 的启动时间,启...

  • 120
    Any 和 AnyObject的区别

    之前在使用Swift的过程中没有注意到这两者的区别,最近看到一篇文章介绍二者的区别,记下笔记。 接下来看下二者的定义 从以上可以看出Any和AnyObject都是协议而且,并...

  • 120
    iOS dyld

    一、应用程序加载原理 在分析dyld加载应用程序之前,先清楚以下基本概念。库:可执行的二进制文件,可以被系统加载到内存。库分为静态库和动态库,动态和静态库的区别是链接的区别。...

  • 120
    iOS底层-dyld加载分析

    引言: 众所周知,我们的iOS应用是通过Dyld进行加载的,那么Dyld是如何加载我们的应用的,它的流程是怎样的,下面我们把dyld的加载分为几个步骤做个简短的分析。 1 d...

  • 120
    iOS底层探索 --- dyld加载流程

    dyld加载流程图 建议大家在阅读文章的时候,结合流程图阅读。这样方便理解这个流程,可以将图片下载到本地,一边阅读一边比对。 1、dyld 1.1 简介dyld(The dy...

  • 120
    objc_msgSend流程分析

    前言 我们知道OC的上层方法调用时,在底层都会转化为objc_msgSend调用,那么它的流程是怎么样的呢,我们又如何理解它, 我们带着这些疑问来分析objc_msgSend...

  • 120
    Objc4-818底层探索(十):msgSend消息发送(三): 动态方法决议

    建议先看下 Objc4-818底层探索(九):msgSend消息发送(二): 慢速查找[https://www.jianshu.com/p/33566f37a123] 名词解...

  • 120
    Objective-C 动态方法决议

    上篇文章分析了 消息慢速查找[https://www.jianshu.com/p/db43c28e0e11] 流程,当消息找不到的时候会执行_objc_msgForward_...

  • 120
    OC底层原理-动态方法决议

    当lookupImpOrForward函数从cache和methodTable中找不到对应Method,继续向下执行就会来到resolveMethod_locked函数也就是...

  • 消息转发流程分析

    我们之前分析了消息查找流程 首先,调用objc_msgSend,从cache中快速查找,命中就执行对应的imp 其次,如果cache中没有找到,就调用lookUpImpOrF...

  • 120
    001-OC对象原理探究

    alloc探索 通过这篇文章可以知道什么: alloc方法是如何开辟内存的,开辟了多少内存? 在alloc过程中内存、指针有什么关系? alloc是如何开辟内存空间的? 如何...

  • 120
    01-汇编

    汇编语言的发展 机器语言 由0和1组成的机器指令(本质上就是有电和没电) 在早期变成过程中,由于使用机器码这种方式很难受,慢慢的衍生除了助记符,如: 加:0100 0000 ...