0%

开个估计永远不会填的坑……

中心化的网络根源

中心化的网络存在的一个非常重要的原因就是 http 协议,使得信息的分发和呈现变得统一。

IPFS

InterPlanetary File System(IPFS)

星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs在开源社区的帮助下发展。其最初由Juan Benet设计。

记录一个问题。

UIView 的 layoutSubview 被调用的时候 hook 当前 Class。 发现后一次 hook 在一定情况下永远不生效。

检查发现,有人动态给这个实例创建了一个子类(和 KVO 类似),并且把用关联对象把原始 layoutSubview 的 IMP 保存了起来。

阅读全文 »

想要替换整个项目里面所有 class 自己感兴趣的方法(layoutSubviews;cellForRow;viewDidLoad)以便统计方法调用时长

迭代 1.0

  • 启动以后拿到所有 class
  • 生成一棵以 NSObject 为根节点的继承树
  • 在树中找到 UIView 这个节点,向下递归遍历 Swizzle 所有节点我们想要 hook 的方法(layoutSubviews 等)
  • 在树中找到 UIViewController 这个节点,向下递归遍历 Swizzle 所有节点我们想要 hook 的方法(viewDidLoad 等)

生成树的过程太慢。 App 启动以后直接 CPU 跑满卡死。(这东西直接跑在项目里面估计要被同事们打死的)

阅读全文 »