我试图创建一个抛硬币模拟,将记录NSTableView中每次抛硬币的结果。然而,当我去插入一条包含抛硬币结果的新记录时,我得到了一个 Fatal error: Array index out of range
这是我的视图控制器类的一部分。
class CoinController: NSViewController {
@IBOutlet weak var shownImage: NSImageView!
@IBOutlet weak var shownText: NSTextField!
@IBOutlet weak var coinSelected: NSPopUpButton!
@IBOutlet weak var tableView: NSTableView!
@objc dynamic var values: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func flipCoin(_ sender: Any) {
let transition = CATransition()
transition.type = CATransitionType.moveIn
let rand = Bool.random()
let currentCoin = coinSelected.titleOfSelectedItem ?? ""
if rand == true {
self.shownImage.image = NSImage(named:currentCoin+"Heads")
values.append("Heads")
} else {
self.shownImage.image = NSImage(named:currentCoin+"Tails")
values.append("Tails")
}
self.shownImage.layer?.add(transition, forKey: "transition")
let last = values.count-1
tableView.insertRows(at: [last], withAnimation: .slideDown)
tableView.reloadData(forRowIndexes: [last], columnIndexes: IndexSet(integersIn: 0..<1))
tableView.scrollRowToVisible(last)
tableView.selectRowIndexes([last], byExtendingSelection: false)
}
这里是我的绑定