本文用来介绍 iOS 开发中,如何通过『Runtime』获取类详细属性、方法。通过本文,您将了解到:

  1. 获取类详细属性、方法简述
  2. 获取类详细属性、方法(成员变量列表、属性列表、方法列表、所遵循的协议列表)
  3. 应用场景
    3.1 修改私有属性
    3.2 万能控制器跳转
    3.3 实现字典转模型
    3.4 改进 iOS 归档和解档

文中示例代码在: bujige / YSC-Class-DetailList-Demo


阅读全文 »

本文用来介绍 iOS 开发中『Runtime』中的黑魔法 Method Swizzling。通过本文,您将了解到:

  1. Method Swizzling(动态方法交换)简介
  2. Method Swizzling 使用方法(四种方案)
  3. Method Swizzling 使用注意
  4. Method Swizzling 应用场景
    4.1 全局页面统计功能
    4.2 字体根据屏幕尺寸适配
    4.3 处理按钮重复点击
    4.4 TableView、CollectionView 异常加载占位图
    4.5 APM(应用性能管理)、防止崩溃

文中示例代码在: bujige / YSC-Runtime-MethodSwizzling


阅读全文 »

本文用来介绍 iOS 开发中『Runtime』相关的基础知识。通过本文,您将了解到:

  1. 什么是 Runtime?
  2. 消息机制的基本原理
  3. Runtime 中的概念解析(objc_msgSend 、Class、Object、Meta Class、Method)
  4. Runtime 消息转发
  5. 消息发送以及转发机制总结
阅读全文 »

『学习之道』 是一本比较特别的书。它的作者是 乔希·维茨金,他 13 岁就获得了国际象棋大师称号,后来又在太极拳推手赢得了世界冠军。在这本书中,作者用自己的个人经历和感悟,以一种朴实无华的文笔向我们讲述在国际象棋和太极推手学习过程中,关于学习的艺术。

阅读全文 »

本文用来介绍 iOS 开发中 『Blocks』的底层原理。我将通过 Blocks 由 OC 转变的 C++源码来一步步解析 Blocks 的底层原理。

通过本文您将了解到:

  1. Blocks 的实质是什么?
  2. Block 截获局部变量和特殊区域变量
  3. Block 的存储区域
  4. Block 的循环引用

文中 Demo 我已放在了 Github 上,Demo 链接:传送门

阅读全文 »

本文用来介绍 iOS开发中 『Blocks』的基本使用。通过本文您将了解到:

  1. 什么是 Blocks
  2. Blocks 变量语法
  3. Blocks 变量的声明与赋值
  4. Blocks 变量截获局部变量值特性
  5. 使用 __block 说明符
  6. Blocks 变量的循环引用以及如何避免

文中 Demo 我已放在了 Github 上,Demo 链接:传送门

阅读全文 »

前两年的年终总结拖着没写,于是现在变成了『2018 年终总结』 。我怕再不写就变成了 2020 年。 人啊,总是要学会改变的,不是吗? 2018 年已经结束,新的一年已经开始了。回首再看这一年,越发觉得时间过得很快。时间从来不会在乎我们的意识,只会无情推着我们向前行走。与其止步不前,站在原地思 ...
阅读全文 »
0%