我正在构建一个原型播放器应用程序,它允许我向前和向后跳过。问题是当我跳到远处或点击上一个按钮很多次应用程序崩溃,因为"索引超出范围"。我尝试了很多东西,但无法解决这个问题。这是我的代码。谢谢!
let player = AVPlayer()
var urlPlayerItems = [String]()
var currentTrack: Int = 0
@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()
}
答案 0 :(得分:1)
let player = AVPlayer()
var urlPlayerItems = [String]()
var currentTrack: Int = 0
@IBAction func didTapPreviousButton(_ sender: UIButton) {
if currentTrack >= 1 {
currentTrack -= 1
}
playTrack()
}
@IBAction func didTapNextButton(_ sender: UIButton) {
if currentTrack <= urlPlayerItems.count - 2 {
currentTrack += 1
}
playTrack()
}
答案 1 :(得分:0)
如果您只是想查看一个索引在给定数组中是否有效,那么这里只是一个扩展:
extension Array {
func canSupport(index: Int ) -> Bool {
return index >= startIndex && index < endIndex
}
}
let test = ["", ""]
print(test.canSupport(index: 0)) //prints true
print(test.canSupport(index: 2)) //prints false