#swift
在 Swift 开发中,我们常常利用 extension 和 // MARK: 来划分代码逻辑,比如划分出 “Config”、“Life cycle” 等模块。然而,在使用扩展时却常常会遇到方法覆写的问题,尤其是在定义基类的“框架方法”后,子类无法正确覆写的问题。
本文将通过覆写方法,深入探讨 Swift 中的方法派发机制,并讨论如何在代码设计时规避常见坑点。
常规的在扩展中定义存储属性的方法是借助 Objective-C 的 runtime 进行属性关联。但是这个方法仅限于 ObjC 类,那么纯 Swift 类,比如结构体该怎么办呢?
在 epoxy 这个库中发现了解决办法。
虽然国内实际开发用 Swift Package Manager(后称 SPM)的比较少,但是国外的一些开源库里却经常用到。所以经常遇到项目 clone 下来之后,SPM 加载失败导致项目无法运行的问题。
网上关于 SPM 加速的文章也有很多,方法也是五花八门,本文挑选几个进行记录。