swift 是編譯型語言,所以編譯時間相比較 OC 是要增加不少時間的 swift 在 編譯的時候花費做多的時間就是,類型推斷 關於影響編譯速度和統計編譯時間的文章在度娘上比比皆是
而一些合適的編碼方式,會大量減少編譯時間
這裏主要是記錄一下在日常中用到的並且真切的能夠減少編譯時間的一些小技巧
1. 替換 ??
?? 使用起來是非常的方便,但是從編譯時間上來看,着實增加了不少的編譯時間,甚至是成倍,幾十倍的增加。但是如果到處使用 let 解包,這樣的代碼感覺慘不忍睹
那我們就是用函數(方法)來替換 ??
/// 佔位字符串 同 ?? 相同功能,但是 ?? 會增加編譯時間 public func SMStrNil(_ cur: String?, _ placeHolder: String) -> String { if let exit = cur { return exit } else { return placeHolder } } /// 佔位 Int 同 ?? 相同功能,但是 ?? 會增加編譯時間 public func SMIntNil(_ cur: Int?, _ placeHolder: Int) -> Int { if let exit = cur { return exit } else { return placeHolder } } /// 佔位 Double 同 ?? 相同功能,但是 ?? 會增加編譯時間 public func SMDoubleNil(_ cur: Double?, _ placeHolder: Double) -> Double { if let exit = cur { return exit } else { return placeHolder } } /// 佔位 Double 同 ?? 相同功能,但是 ?? 會增加編譯時間 public func SMCGFloatNil(_ cur: CGFloat?, _ placeHolder: CGFloat) -> CGFloat { if let exit = cur { return exit } else { return placeHolder } } /// 佔位 Bool 同 ?? 相同功能,但是 ?? 會增加編譯時間 public func SMBoolNil(_ cur: Bool?, _ placeHolder: Bool) -> Bool { if let exit = cur { return exit } else { return placeHolder } } /// 佔位任意類型,使用此方法可能增加編譯時間,故使用指定類型方法 同 ?? 相同功能,但是 ?? 會增加編譯時間 public func SMNil<T>(_ cur: T?, _ placeHolder: T) -> T { if let exit = cur { return exit } else { return placeHolder } }
2. 字符串使用 appending 代替 +
3. 參數名稱指定
WechatIMG2026.jpeg