Swift 5 Thread 1: Fatal error: Index out of range Ошибка появляется с цикла Collect1Words с 1 по 4 строчки

Ошибка появляется с цикла Collect1Words с 1 по 4 строчки(удаляя одну строку, ошибка высвечивается в следующей) import UIKit

class ViewController: UIViewController {
    
    var keyBut : String = ""
    var valueBut : String = ""
    var dictCollect1 : [String:String] = ["Apple":"Яблоко", "Cat":"Кот", "Dog":"Собакен"]
    @IBOutlet weak var LabelIntresting: UILabel!
    @IBOutlet weak var LabelAll_Words: UILabel!
    @IBOutlet weak var LabelStying_now: UILabel!
    @IBOutlet weak var ButtonCollect1: UIButton!
    @IBOutlet weak var ButtonCollect2: UIButton!
    @IBOutlet weak var ButtonCollect3: UIButton!
    @IBOutlet weak var ButtonCollect4: UIButton!
    @IBOutlet weak var ButtonCollect5: UIButton!
    @IBOutlet weak var ButtonEngWord: UIButton!
    @IBOutlet weak var ButtonRusWord: UIButton!
    var TextForCollect1 = ""
    var TextForCollect2 = ""
    var TextForCollect3 = ""
    var TextForCollect4 = ""
    var TextForCollect5 = ""
    var keyCollect1 = [String]()
    var valueCollect1 = [String]()
    func Collect1Words() {
        keyBut = keyCollect1[0]
        valueBut = valueCollect1[0]
        keyCollect1.remove(at: 0)
        valueCollect1.remove(at: 0)
        ButtonEngWord.setTitle(keyBut, for: .normal)
        ButtonRusWord.setTitle(valueBut, for: .normal)
        
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        ButtonCollect1.setTitle(TextForCollect1, for: .normal)
        ButtonCollect2.setTitle(TextForCollect2, for: .normal)
        ButtonCollect3.setTitle(TextForCollect3, for: .normal)
        ButtonCollect4.setTitle(TextForCollect4, for: .normal)
        ButtonCollect5.setTitle(TextForCollect5, for: .normal)
        ButtonEngWord.isHidden = true
        ButtonRusWord.isHidden = true
        
        Collect1Words()
        for (key, value) in dictCollect1 {
            keyCollect1.append(key)
            valueCollect1.append(value)
        }
    }
    @IBAction func ButtonCollect1Act(sender: UIButton) {
        // Скрытие ненужных кнопок
        LabelIntresting.isHidden = true
        LabelAll_Words.isHidden = true
        LabelStying_now.isHidden = true
        ButtonCollect1.isHidden = true
        ButtonCollect2.isHidden = true
        ButtonCollect3.isHidden = true
        ButtonCollect4.isHidden = true
        ButtonCollect5.isHidden = true
        ButtonEngWord.isHidden = false
        ButtonRusWord.isHidden = true
        // Скрытие ненужных кнопок
        
        Collect1Words()
    }
    @IBAction func ButtonCollect2Act(sender: UIButton) {
        // Скрытие ненужных кнопок
        LabelIntresting.isHidden = true
        LabelAll_Words.isHidden = true
        LabelStying_now.isHidden = true
        ButtonCollect1.isHidden = true
        ButtonCollect2.isHidden = true
        ButtonCollect3.isHidden = true
        ButtonCollect4.isHidden = true
        ButtonCollect5.isHidden = true
        ButtonEngWord.isHidden = false
        ButtonRusWord.isHidden = true
        // Скрытие ненужных кнопок
        
        Collect1Words()
    }
    @IBAction func ButtonCollect3Act(sender: UIButton) {
        // Скрытие ненужных кнопок
        LabelIntresting.isHidden = true
        LabelAll_Words.isHidden = true
        LabelStying_now.isHidden = true
        ButtonCollect1.isHidden = true
        ButtonCollect2.isHidden = true
        ButtonCollect3.isHidden = true
        ButtonCollect4.isHidden = true
        ButtonCollect5.isHidden = true
        ButtonEngWord.isHidden = false
        ButtonRusWord.isHidden = true
        // Скрытие ненужных кнопок
        
        Collect1Words()
    }
    @IBAction func ButtonCollect4Act(sender: UIButton) {
        // Скрытие ненужных кнопок
        LabelIntresting.isHidden = true
        LabelAll_Words.isHidden = true
        LabelStying_now.isHidden = true
        ButtonCollect1.isHidden = true
        ButtonCollect2.isHidden = true
        ButtonCollect3.isHidden = true
        ButtonCollect4.isHidden = true
        ButtonCollect5.isHidden = true
        ButtonEngWord.isHidden = false
        ButtonRusWord.isHidden = true
        // Скрытие ненужных кнопок
        
        Collect1Words()
    }
    @IBAction func ButtonCollect5Act(sender: UIButton) {
        // Скрытие ненужных кнопок
        LabelIntresting.isHidden = true
        LabelAll_Words.isHidden = true
        LabelStying_now.isHidden = true
        ButtonCollect1.isHidden = true
        ButtonCollect2.isHidden = true
        ButtonCollect3.isHidden = true
        ButtonCollect4.isHidden = true
        ButtonCollect5.isHidden = true
        ButtonEngWord.isHidden = false
        ButtonRusWord.isHidden = true
        // Скрытие ненужных кнопок
        
        Collect1Words()
    }
    
    @IBAction func ButtonEngWordAct(_ sender: Any) {
        ButtonEngWord.isHidden = true
        ButtonRusWord.isHidden = false
    }
    
    @IBAction func ButtonRusWordAct(_ sender: UIButton) {
        ButtonEngWord.isHidden = false
        ButtonRusWord.isHidden = true
        Collect1Words()
    }
    
}

Ответы (1 шт):

Автор решения: schmidt9

Вы обращаетесь к массиву прежде чем заполнили его, вот так попробуйте

        for (key, value) in dictCollect1 {
            keyCollect1.append(key)
            valueCollect1.append(value)
        }

       Collect1Words()
→ Ссылка