240 发简信
IP属地:北京
  • 算了 大家还是别用了,理论天花乱坠,实际全是误伤。项目统计到3K个无用类,结果发现几乎全是瞎统计的。比如函数入参、属性类型等等 这些依赖形式全被忽略成无用类了。

    iOS 脚本查看项目中未使用的类

    背景: 日常的项目经过长时间的迭代,优化,重构之后,可能会积累一些用不到了的类,长久下去,会影响我们的包大小。定期的检测,可以在一定程度上控制ipa的增大<话说不是砍需求才是...

  • @踩坑小分队
    场景很常见,比如:

    -------------------- XXModel.h --------------------------
    @interface XXModel.h
    @property (nonatomic, strong) XXSubModel *obj1;
    @end

    @interface XXSubModel.h
    @property (nonatomic, copy) NSString *title;
    @end
    ---------------------------------------------

    这时候 XXSubModel就会被统计为无用类

    iOS 脚本查看项目中未使用的类

    背景: 日常的项目经过长时间的迭代,优化,重构之后,可能会积累一些用不到了的类,长久下去,会影响我们的包大小。定期的检测,可以在一定程度上控制ipa的增大<话说不是砍需求才是...


  • 字(Word):1个字由两个字节组成(16位),这两个字节分为高字节、低字节。
    双字(DoubleWord):1个双字由两个字组成(32位)。

    上面这段信息有误。在arm64中,汇编指令长度是32位(这点跟32位汇编指令长度相同)。
    而所谓的字长 = 指令长度,即:arm64中字长是32位,双字也就是64位。

    ARM64学习2

    ARM64 计算机中常见的数据宽度 位(Bit):1个二进制位 字节(Byte):一个字节有8个Bit组成,内存中最小的单元为Byte 字(Word):1个字由两个字节组成(...

  • UIScrollView 滚动手势记录并回放的时候,滚动惯性丢失,请问有办法解决么?

    iOS逆向--FakeTouch虚拟点击(模拟正面点击效果实现)

    前言:由于做游戏插件, 就遇到了这个需求, 接收触控信号从而达到手机屏幕点击效果, 游戏嘛, 常见的人物移动, 大招拖放, 一键大招, 一键复活甲...... 国内外大型游戏...

  • 120
    DDZombieMonitor

    核心代码分析: 自定义Dealloc: 流程总结 & 验证: 1、析构对象 2、给指针内容填充上0x55 3、把DDZombie的isa复制到obj指针中 4、将obj原来的...

  • 『FP就是栈基址,它指向函数的栈帧起始地址。SP则是函数的栈指针,它指向栈顶的位置。』
    大哥,你对FP、SP的解释,图文不一致吧。。

    iOS 内存五大区

    文章摘抄链接:iOS-底层原理 24:内存五大区[https://www.jianshu.com/p/5d90064909d4]iOS底层原理之内存五大区[https://j...

  • 120
    iOS 动态库 & 静态库

    编译器 LLVM 是编译器工具链技术的一个集合。而其中的 lld 项目,就是内置链接器。 编译器会对每个文件进行编译,生成 Mach-O(可执行文件);链接器会将项目中的多个...

  • 不得不说,分析的挺到位了,不过我发现一个问题:

    文中提到『另外一个线程B执行 prev = *location; 。那么当线程A继续执行到objc_release(prev); 线程B 继续执行 ,跑到objc_release(prev)』。

    B线程执行完prev = *location以后,那么就会走到 if (obj == prev) { return; } if条件是成立的(prev == *location, *location == obj,推出prev == obj), 所以会直接return,B线程不会over release prev。你说呢?

    iOS多线程读写崩溃分析

    最近再次遇到多线程读写导致的crash 问题,写了一个测试demo,记录分析过程。 上面是暴力重现多线程读写的崩溃,在debug环境下,开启zombie ,窗口会输出: 上面...

  • 120
    SSH以及在git中的使用

    前提是你已经在Linux服务器上安装了git SSH(2019.01.31补) SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务. SSH(Secure S...

  • 4页表模块的前一段有笔误:『如逻辑地址2,用二进制表示00000000 00000000 00000000 00000010,前24位二进制对应的十进制值就是逻辑地址2对应的页号,即0号页,而后12二进制位对应的十进制值就是偏移量』
    “前24位” --> “前20位”

    基本分页存储管理

    前言 阅读前请先阅读内存管理基础。从本文开始就介绍不连续分配的几种方式,本文主要介绍基本分页存储管理。 1 将连续分配改造成非连续分配版本 假设进程A的大小为23MB,但是每...

  • 想问下第二种合并方式B commit去哪了?是不是写错了哈