原文:Aspects框架的源码解读及问题解析

前言 在iOS日常开发中,对某些方法进行hook是很常见的操作。最常见的是使用Category在 load中进行方法swizzle,它是针对类的,会改变这个类所有实例的行为。但是有时候我们只想针对单个实例进行hook,这种方法就显得无力了。而Aspects框架可以搞定这个问题。 它的原理是通过Runtime动态的创建子类,把实例的isa指针指向新创建的子类,然后在子类中对hook的方法进行处理,这 ...

2021-11-29 10:37 0 136 推荐指数:

查看详情

HashMap源码解析和设计解读

HashMap源码解析 ​ 想要理解HashMap底层数据的存储形式,底层原理,最好的形式就是读它的源码,但是说实话,源码的注释说明全是英文,英文不是非常好的朋友读起来真的非常吃力,我基本上看了差不多七八遍,还结合网上的一些解析,才觉得自己有点理解。 ​ 我先画了一个图,HashMap数据存储 ...

Tue Jun 15 02:01:00 CST 2021 1 217
Bert源码解读(一)之主框架

一、BertModel主入口 总结:Bert的输出最终有两个结果可用 sequence_output:维度【batch_size, seq_length, hidden_siz ...

Sat Feb 29 20:13:00 CST 2020 0 2451
《spring源码解读》 - IoC 之解析 import 标签

在上一文中我们分析了注册 BeanDefinition 的过程,在其中我们了解到在解析跟节点和子节点时分两种情况,对于默认名称空间的标签我们通过 DefaultBeanDefinitionDocumentReader#parseDefaultElement(Element ele ...

Wed Sep 02 23:43:00 CST 2020 0 444
八数码问题解析

八数码的问题描述为: 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用-1来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局,找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。 解决八数码的方法 ...

Fri Sep 21 05:58:00 CST 2018 0 5785
Spark ML源码分析之一 设计框架解读

抽象的学习本身,就是加深框架所面对的问题的理解的一种有效途径。纷繁复杂的机器学习问题,经过优秀框架解析 ...

Thu Mar 15 07:25:00 CST 2018 0 1023
Gin框架源码解析

Gin框架源码解析 Gin框架是golang的一个常用的web框架,最近一个项目中需要使用到它,所以对这个框架进行了学习。gin包非常短小精悍,不过主要包含的路由,中间件,日志都有了。我们可以追着代码思考下,这个框架是如何一步一步过来的。 从http包说起 基本上现在的golang的web库 ...

Wed Sep 19 03:44:00 CST 2018 0 6405
gin框架源码解析

转自 gin框架路由详解 gin框架使用的是定制版本的httprouter,其路由的原理是大量使用公共前缀的树结构,它基本上是一个紧凑的Trie tree(或者只是Radix Tree)。具有公共前缀的节点也共享一个公共父节点。 Radix Tree 基数树(Radix Tree)又称 ...

Sat Aug 01 04:02:00 CST 2020 0 788
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM