回过头来阅读我的应用程序的构建日志后,似乎有一个奇怪的问题,即两个(相对)简单的函数都将编译时间分别增加一分钟(分别为58和53秒)。这可以在我的构建日志中看到:
这些函数在我的CAAgeViewController中,并且都在我的故事板中引用了一个UISlider。它们确保最大和最小滑块最多在1年之内,并且任一功能都将标签设置为" 18-24岁"或者那种方面的东西。它们如下:
@IBAction func minAgeChanged(_ sender: UISlider) {
if round(minAgeSlider.value / 1) < round(maxAgeSlider.value / 1) - 1 {
minAgeSlider.value = round(minAgeSlider.value / 1)
ageLabel.text = String(Int(round(minAgeSlider.value / 1))) + "-" + String(Int(round(maxAgeSlider.value / 1))) + " Years"
} else {
minAgeSlider.value = round(maxAgeSlider.value / 1) - 1
ageLabel.text = String(Int(round(minAgeSlider.value / 1))) + "-" + String(Int(round(maxAgeSlider.value / 1))) + " Years"
}
}
@IBAction func maxAgeChanged(_ sender: UISlider) {
if round(maxAgeSlider.value / 1) > round(minAgeSlider.value / 1) + 1 {
maxAgeSlider.value = round(maxAgeSlider.value / 1)
ageLabel.text = String(Int(round(minAgeSlider.value / 1))) + "-" + String(Int(round(maxAgeSlider.value / 1))) + " Years"
} else {
maxAgeSlider.value = round(minAgeSlider.value / 1) + 1
ageLabel.text = String(Int(round(minAgeSlider.value / 1))) + "-" + String(Int(round(maxAgeSlider.value / 1))) + " Years"
}
}
我不确定这里到底出了什么问题。任何帮助表示赞赏!
答案 0 :(得分:4)
你的问题是链式加。 (它总是链式加上;好吧,不是总是但总是......)
ageLabel.text = String(Int(round(minAgeSlider.value / 1))) + "-" + String(Int(round(maxAgeSlider.value / 1))) + " Years"
将其替换为:
ageLabel.text = "\(Int(round(minAgeSlider.value)))-\(Int(round(maxAgeSlider.value))) Years"
我很确定/1
在这里没有帮助你。 round
+ Int
应该做你想要的一切。
答案 1 :(得分:3)
减速的最可能原因是您使用+
连接字符串的方式。由于某种原因,我无法弄明白,它更快<(>至少在Swift 2/3中)以"\(string1) \(string2)"
追加字符串而不是更快 使用string1 + string2
。数组及其+
运算符也是如此。当我们改变了连接方式时,我们看到编译时间缩短了100倍。
答案 2 :(得分:1)
您是否尝试将除法除1并将值转换为Double?考虑到你,他们可能已经是双打。你可能只需要调用round()。