【发布时间】:2017-02-02 19:28:44
【问题描述】:
我尝试将以下代码转换为 Swift 3 并收到此奇怪错误“无法将 Bool 类型的值转换为预期的参数类型 Int”。当我摆脱“++”时,问题就出现了。我还链接到我想完全转换的堆栈溢出问题。谢谢!这是之前的代码和我尝试转换的代码:
之前的代码
func previousTrack() {
if currentTrack-- < 0 {
currentTrack = (playerItems.count - 1) < 0 ? 0 : (playerItems.count - 1)
} else {
currentTrack--
}
playTrack()
}
转换后的代码
@IBAction func didTapPreviousButton(_ sender: UIButton) {
if currentTrack += 1 < 0 { // Issue occurs here
currentTrack = (urlPlayerItems.count - 1) < 0 ? 0 : (urlPlayerItems.count - 1)
} else {
currentTrack -= 1
}
playTrack()
}
Original question I want to convert to Swift 3
编辑:
@IBAction func didTapPreviousButton(_ sender: UIButton) {
if (currentTrack - 1) <= 0 {
currentTrack = (urlPlayerItems.count - 1) < 0 ? 0 : (urlPlayerItems.count - 1)
} else {
currentTrack -= 1
}
playTrack()
}
@IBAction func didTapNextButton(_ sender: UIButton) {
if (currentTrack + 1) >= urlPlayerItems.count {
currentTrack = 0
} else {
currentTrack += 1
}
playTrack()
}
【问题讨论】:
-
多花一行,比check
-
这也是我的建议
-
为什么要用
+=替换旧的--?为什么不-=? -
@LeoDabus - 这不是重复的。问题不是问如何替换
++。问题是关于在if语句比较中使用+=。 -
@rmaddy 如果您愿意,请随时重新打开。 Hamish 还投票决定关闭它
标签: swift avfoundation