拉维

LV0
发表了文章

OC类的原理(二)

在WWDC2020大会上,苹果公告了对于Runtime的优化(https://developer.apple.com/videos/play/wwdc2020/...

拉维
发表了文章

OC类的原理(一)

前面两篇文章介绍了OC对象的原理,以及一些分析的思路和方法,今天开始,将开启类的原理探究。

拉维
发表了文章

OC对象原理(二)

上面的代码中,如果我们覆写了该类的allocWithZone方法,那么就会走到第31行的逻辑;不过一般而言我们是不会自己去覆写allocWithZone方法的,...

拉维
发表了文章

OC对象原理(一)

我们要探究一个对象,那么就要找到其属性或者方法等所对应的源码。首先,我来介绍三种探索源码(即定位源码位置)的方式。

拉维
发表了文章

WKWebView的local storage数据同步的问题

webView1中加载了一个H5,webView2中加载了同样的一个H5,该H5是一个搜索页面,通过Local storage来持久化搜索记录,但是在webVi...

拉维
发表了文章

启动优化(二)——二进制重排

上篇文章我们讲了虚拟内存。应用程序在运行的时候会有一个虚拟内存,虚拟内存是分页管理的,它通过页表映射到物理内存上面。分页管理有一个特点,当加载新的一块功能的时候...

拉维
发表了文章

启动优化(一)

启动优化,优化的是启动的时间,所以说,首先要知道如何去获取启动的时间。我们一般以应用程序的main函数作为一个节点,分为main函数之前的启动(pre-main...

拉维
发表了文章

fishhook详解

在正式开启对fishhook的讲解之前,我先对之前的dyld的内容(应用程序的加载——dyld动态链接器的工作流程)做个回顾。

拉维
发表了文章

LLVM(二)——Clang插件

这一步真的很磨人,我下载了一上午才搞定?,如果你在这一步一直下载不下来,那么试着切换个其他的网络,并且多试几次?

拉维
发表了文章

LLVM(一)——编译流程

我们程序员编写的源代码是人类语言,我们可以很轻松得理解;但是对于计算机硬件(CPU)而言,这些源代码就好比是天书,它根本无法理解,更无法直接执行。计算机只能够识...

拉维
发表了文章

Block原理详解(二)

通过上篇文章Block原理详解(一)我们知道,block是在block_copy函数中执行拷贝操作的,所以我就从这个函数开始研究。

拉维
发表了文章

Block原理详解(一)

今天这篇文章也是在前面这三篇文章的基础上,再结合自己最近的一些工作感悟,进行内容的完善。

拉维
发表了文章

锁的使用以及底层原理

我们知道,@synchronized是一把互斥锁(互斥锁保证在任何时刻都只能有一个线程访问该对象),它通过大括号来作为加锁、解锁的标识。

拉维
发表了文章

聊几道面试题

Runtime System实际上是一个C、C++写的底层库,即一套API,系统在编译完代码之后,在运行的时候还需要依赖Runtime System才能够完整的...

拉维
发表了文章

KVC原理分析

首先呢,我们来聊一聊苹果开发文档。不知道诸位在平时开发中是否有查阅苹果官方文档的习惯,反正我在遇到一些不太清楚的地方的时候首先会去官方文档上看看是否能找到对应的...

拉维
发表了文章

KVO详解(一)

我在之前的文章iOS开发中的设计模式--观察者模式中有介绍过KVO的简单使用,大家可以先去了解一下。今天呢,我们来详细分析下KVO。

拉维
发表了文章

KVO详解(二)

上篇文章中我介绍了KVO的简单用法以及KVO的实现细节,为了加深对KVO的理解,我决定从头到尾介绍一下如何自定义KVO。

拉维
发表了文章

GCD原理探究(一)——创建队列

1,栈区,由编译器自动分配并释放,在运行的时候分配,用于存储函数的参数、局部变量、指针等。

拉维
发表了文章

weak的底层原理

我们经常会使用weak来解决OC中的循环引用问题,因为weak不会使引用计数加1;并且weak修饰的指针还会在对象被销毁后自动置空,这有效的解决了野指针调用的问...

拉维
发表了文章

类的加载(三)

我们在OC的.m文件中,经常会使用扩展对某类进行私有的属性或者成员变量的声明,如下:

拉维

个人简介

个人成就

扫码关注云+社区

领取腾讯云代金券