Julian Home

Life You Life

final

final 关键字可以用在 class,func 或者 var 前面进行修饰,表示不允许对该内容进行继承或者重写操作。通过final禁止继承和重写的做法是非常有益的,它可以更好地对代码进行版本控制,得到更佳的性能. 编译器能够得到额外的信息,

.Type & .self

.Type 表示的是某个类型的元类型 (meta 元类) AnyClass 是一个 AnyObject 的一个元类型 typealias AnyClass = AnyObject.Type 其实在 Swift 中,.self 可以用在类型后面取得类型本身,也可以用在某个实例后面取得这个实例本身。前一种方法可以用来获得一个表示该类型的值,这在某些时候会很有用;而后者因为拿到的实例本...

网络封装中 Error 处理

enum 是封装中一个常用的方式,enum 可以与其他实例进行绑定的,我们可以让方法返回枚举类型。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public struct ErrorMetaData: Codable { public var code: Int? public var msg: String? } public enum...

什么时候使用 unowned | weak

我们使用unowned 和weak 主要是解决循环引用 1 2 3 4 5 6 lazy var printName: ()->() = { [weak self] in if let strongSelf = self { print("The name is \(strongSelf.name)") } } 如果我们可以确定在整个...

Gem::FilePermissionError

当通过 gem install 一些东西的 时候,比如sass ,cocoapods 等经常出现 1 2 ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory. 这样的错误, 都是权限的锅,我们都...

subscript

在一个数组内,我想取出 index 为 0, 2, 3 的元素 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 extension Array { subscript(input: [Int]) -> Array<Int> { get { var res...

:0: error: module map file 'xxx.file' modulemap' not found

昨天升级Xcode12 ,打开项目运行不了,具体报错如题,大量的来自cocoapods的lib resolve:

React mock data by charles

当在React中通过 axios 写接口的时候,你无法脱离需要mock 一些数据。 所以一般我们通过Charles来实现,按照常规的操作,你是无法实现的,以下方法可以达到你的要求。 通过以下链接访问,无需再通过 localhost:3000 => http://localhost.charlesproxy.com:3000/ 在 ` Tools -> map...

多模式捕获条款

目前还在review 中,看得出下个版本会使用,枚举在相同的情况下已经可以有多个模式,并且在它们的值上匹配(如果它们具有相同的类型)。 Swift 5.3对围绕模式匹配的catch子句的功能进行了微小但非常受欢迎的改进。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 enum MyError: Error { ...

toggle 反转

toggle 反转 OS 定义 @inlinable public mutating func toggle() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 struct Layer { var isHidden = false } struct View { var layer = Layer() } var view = V...