240 发简信
IP属地:广东
  • 仿写系统KVC的实现

    最近发现在iOS 13的系统下使用kvc获取一些控件的私有成员出现崩溃,发现是苹果在对应的控件类中重写了kvc相关方法,判断key名来禁止一些成...

  • Resize,w 360,h 240
    FBRetainCycleDetector中获取block强引用的对象实现方式

    FBRetainCycleDetector中获取block强引用的对象实现方式 在我的上一篇文章中介绍了如何获取block捕获的对象,思路是通过...

  • 打印block中引用的所有Object对象

    这篇文章是参考了欧阳大哥的实现并在此基础上进行了一些扩展,原文链接在此一种查看Block中引用的所有外部对象的实现方法。想要详细了解如何解析bl...

  • 让Category自动合成属性

    最近写了一个小工具库,分类中添加的属性自动生成setter和getter并绑定ivar。平时我们要想实现给分类添加属性,需要用到runtime的...

  • Resize,w 360,h 240
    fishhook源码解析

    前言 fishhook是fackbook开源的一个用来hook c函数的库。在iOS开发中我们一般都是对OC方法进行hook,这是因为OC的动态...

  • RSSwizzle源码解析

    RSSwizzle源码解析 前言 RSSwizzle是一个轻量的线程安全的方法hook的库,平常我们仅仅通过runtime的method_exc...

  • Aspects 源码解析

    简介 Aspects是一个轻量的面向切面编程(AOP)的第三方库,面向切面编程简单来说,就是在原来的业务流程之中的某个位置插入额外的功能,不影响...

  • dealloc底层解析

    前言 我们知道一个对象即将释放的时候会进入到dealloc方法中,通常也是通过dealloc是否回调来检测循环引用。我一直对dealloc内部做...

  • Resize,w 360,h 240
    Block底层探究

    一、定义一个Block 在上面的代码中定义了一个无返回值无参数的block,并定义了一个全局变量globalStr,两个局部变量str、a以及一...