• Clang之二 : AST节点解析

    前言:为了基于clang对我们的代码做一些分析,我们最常用的就是去分析AST(抽象语法树),为了能达到分析AST的目的,我们首先需要做的是能看懂...

  • LLVM IR 三部曲之二 --- 创建IR

    前言 上一篇文章我们讲了IR的基本语法规则,这篇文章我们讲一下,如何手动去生成IR!生成IR有以下几种方式:1、通过c++直接使用Instruc...

  • LLVM IR 三部曲之一 --- IR语法

    IR基本组成部分 IR主要有以下四部分组成:ModuleFunctionBasicBlockInstruction 他们之间关系:(用图会描述的...

  • 120
    关于performSelector:系列API实现存在的问题解读

    先来看一个问题:performSelector:withObject:afterDelay:在子线程(没有主动开启runloop)执行,其中的s...

  • iOS 中 alloc init 和new的区别

    前言:这个知识点大多都已经知晓,[[xx alloc] init] 跟 [xx new]是等价的。但是具体是如何等价的或许大多数人都解释不清楚,...

  • rangeOfString:使用问题

    1、缘起:在排查一个古老的版本上的bug时,定位到一处诡异的代码。2、复现:a) b) c) d) 3、官宣: Return ValueAn N...

  • Self 和Super 解释

    1、self 和 super的官方解释 selfWhenever you’re writing a method implementation,...

  • synthesize

    1、synthesize本质 先来了解下最基本的属性:property 本质是有下面的几部分构成的。 property = ivar + set...

  • NSObject子类重写isEqual:函数和hash函数实践

    本体性 和 相等性:(摘自Equality) 相等性:当两个物体有一系列相同的可观测的属性时,两个物体可能是互相相等或者等价的。但这两个物体仍然...