使用终端生成R.generated.swift文件 (注意:无论何时都是借助终端或xcode脚本生成,绝不是手动修改) 为什么终端生成,XCod...
实用技巧: 技巧1:使用扩展组织代码 (只放短小的计算属性) 技巧2:使用内部枚举 技巧3:使用计算属性替代方法 🎯 重构原则总结 每个方法只做...
ViewModel 重构检查清单 识别坏味道: 1.直接访问全局变量(kIsVip) 2.一个类承担了太多职责(数据处理,插入广告,Vip状态)...
一句话总结:Mock 就是在测试时,用一个可控的假对象代替真实的外部依赖,让测试更专注、更可靠 Mock 是模拟的意思,是软件测试中的一个重要概...
泄露分类型,其中定时器属于活引用泄露,对象被意外强引用(如Timer),Leaks无法检测,因此我们使用 一. 难以检测的定时器泄露: 检测难点...
1. 要在真机或release模式下的运行的模拟器,debug模式下结果不准 2. command+I 调出面板,选择Leaks,点击开始录制,...
🧰记住 Memory Graph 的核心作用: 可视化 对象间的引用关系 快速发现 循环引用 无需停止应用 实时查看 🧰 总结:如何“看懂”Me...
干货篇 这里我用GPUImage作为例子。 首先你应该去github下载源码,然后把里面的xx.xcodeproj直接拉到你的项目文件中 之后就...
干货篇 把profile中的注释删掉换成下面这种, 然后保存 platform :ios, ’10.0’ # 告诉CocoaPods,你的...