Swift:了解一下 defer
May 23, 2021
关于 defer 的几条说明: defer 会在退出其作用域的时候执行。 同一个作用域内可以定义多个 defer。 defer 不要定义在作用域的末尾(因为没有必要)。 一个例子解释…
通过后缀名查询 MIME 类型
Mar 07, 2021
MIME type (现在称为“媒体类型(media type)”,但有时也是“内容类型(content type)”)是指示文件类型的字符串,与文件一起发送(…
优雅的使用 Iconfont
Jan 11, 2021
Iconfont 就是把矢量图作为字体,可以很方便的在 App 里显示图标。拥有体积小加载速度快的优点。 推荐两个生成 Iconfont 的网站: 国外的 fontello 国内的 iconfont Fontello 没有自己的资源库,网…
Swift 里的 dispatch_once 替代方案
Sep 27, 2020
ObjC 里的 dispatch_once 使用起来很方便,但是 Swift 里废弃使用这个方法了,原因是鼓励大家使用 static let 。 …
Swift 的逃逸闭包和非逃逸闭包
Aug 30, 2020
Swift 里的闭包(Closure)对应 ObjC 里的代码块(Block)。 众所周知,在闭包里引用外部变量其引用数会递增,但如果是在闭包所在的方法内部立即就…
Swift 创建纯代码的 macOS & iOS 应用
Feb 22, 2020
纯代码创建 macOS 应用 默认情况下使用 Xcode 创建的 macOS APP 是基于 storyboard 的,对于多人协作的项目,使用纯代码创建界面比 storyboard 更方便。 首先删掉 storyboard 和相关的设置 删除 Main.storyboard 和 Info.plist 里的…
Swift 使用字面量协议扩展 DispatchTime
Dec 30, 2019
DispatchTime 的参数是时间,单位既不是秒也不是毫秒,而是纳秒。 使用的方法如下: DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + .seconds(5)) { // Do your work here } 延迟 5 秒执行,就要写为:DispatchTime.n…