1
我最近開始使用Build Time Analyzer分析Swift項目的編譯時間:https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode。我注意到,這個方法尤其是編譯很慢:什麼導致Swift代碼塊的編譯速度比其他更慢?
func placeStatusSwitch() {
let switchX = tableView.center.x - (statusSwitch.frame.width/2)
var switchY = tableView.contentInset.top - statusSwitch.frame.height + tableView.contentOffset.y
if let refreshControl = refreshControl {
let navigationBarHeight = navigationController?.navigationBar.frame.height ?? 0
let expectedTopInset = UIApplication.shared.statusBarFrame.height + navigationBarHeight + statusSwitch.frame.height + MyTheme.verticalMargin - 4
if tableView.contentInset.top >= expectedTopInset || refreshControl.isRefreshing {
switchY = switchY - refreshControl.frame.height
}
}
statusSwitch.frame = CGRect(x: switchX, y: switchY, width: statusSwitch.frame.width, height: statusSwitch.frame.height)
}
我嘗試使用,而不是改變無合併運算符:
var navigationBarHeight: CGFloat = 0
if let navBarHeight = navigationController?.navigationBar.frame.height {
navigationBarHeight = navBarHeight
}
然而,編譯時間仍然很慢。任何想法可能會導致經濟放緩?
爲了減慢執行速度,您必須熟悉gcd ..在此運行過程中,您希望在後臺運行速度更慢。並在執行期間用當前進程對其進行管理。這完全是關於線程管理。 – JAck
科學野驢猜測(SWAG):它可以在算術表達式的類型推斷?如果你給這些明確的類型有幫助嗎? –
@ColinBarrett你的意思是'switchX'等加入'CGFloat'? – KexAri