#swift

Swift 的 lazy 关键字一直有一个很容易被忽略的问题,那就是它不是线程安全的。
常规的在扩展中定义存储属性的方法是借助 Objective-C 的 runtime 进行属性关联。但是这个方法仅限于 ObjC 类,那么纯 Swift 类,比如结构体该怎么办呢? 在 epoxy 这个库中发现了解决办法。
虽然国内实际开发用 Swift Package Manager(后称 SPM)的比较少,但是国外的一些开源库里却经常用到。所以经常遇到项目 clone 下来之后,SPM 加载失败导致项目无法运行的问题。 网上关于 SPM 加速的文章也有很多,方法也是五花八门,本文挑选几个进行记录。
最近要负责面试,于是各处搜罗了一些面试题,用于笔试(不包含算法),也当作自己的一个复习。
最近要负责面试,于是各处搜罗了一些面试题,用于当面面试使用(非笔试题),也当作自己的一个复习。同时提供了一个我自己角度的评判,仅供参考。
文章以图文的形式,记录 Combine 中各操作符的用法以及效果。下文为原文章内容的转载 + 翻译。