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()