我们的应用通常充斥着崩溃,为了方便寻找导致崩溃的原因,苹果为我们提供了崩溃报告,每个安装了应用的手机,在崩溃时都会产生一个报告,我们可以利用合格报告推断出导致崩溃的原因。 首...
我们的应用通常充斥着崩溃,为了方便寻找导致崩溃的原因,苹果为我们提供了崩溃报告,每个安装了应用的手机,在崩溃时都会产生一个报告,我们可以利用合格报告推断出导致崩溃的原因。 首...
协程又叫用户级轻量线程,它不需要像线程那样占用大量系统资源,但却能像线程那样并发地运行多个函数,它是怎样实现的呢?让我们先搞清楚它的实现细节,然后再动手自己做一个。 在CPU...
介绍 Xcode可以直接引入h5的界面,实现原生界面内嵌h5开发。其实这里不止iOS可以这样做,安卓也可以引用同样的h5界面,实现界面使用同一份h5代码。 为什么要写h5的界...
山雨欲来 “砰砰砰、砰砰砰、砰砰砰” “大师,大师,江湖救急啊” “不知少侠,着急让老夫出关所为何事?” “大师之前授与我的iOS性能优化(初级)和iOS性能优化(中级),我...
屏幕显示图像的原理 CRT 的电子枪按照上面方式,从上到下一行行扫描,扫描完成后显示器就呈现一帧画面,随后电子枪回到初始位置继续下一次扫描。为了把显示器的显示过程和系统的视频...
今天我们讨论的hook方式仅仅是指Method Swizzle,fishhook、Cydia Substrate 等方式不在今天的讨论范畴。 hook load方法我们主要面...
开发小王:我用dispatch_once创建了一个串行Queue,我的代码都是在这个queue中执行的,为什么线上还会有线程安全的问题? 看了下,在Common.h头文件中有...
对于存在于别的动态库的函数,程序在运行的时候需要通过动态链接来获取函数的调用地址。在iOS上是通过dyld来实现的。下面对这个原理做一下梳理。 以最令人熟悉的NSLog来做例...
一、前言 在介绍动态库手动加载方式之前,我们简单了解下动态库,又名共享库在iOS中是个特殊的存在,除了系统库以外,在大部分使用场景下(除了App Extension可以共享)...