我想创建一个您更喜欢的应用程序,但是当我单击一个按钮时它会出错,应用程序退出并且它会收到此致命错误错误:索引超出范围。我该如何解决这个错误?这是我的代码:
@IBOutlet weak var legendaAzul: UILabel!
@IBOutlet weak var legendaVermelho: UILabel!
@IBAction func botaoAzul(_ sender: Any) {
var resultadoAzul: [String] = []
let numero1 = arc4random_uniform( 6 )
resultadoAzul.append("Mata uma pessoa")
resultadoAzul.append("Come um humano")
resultadoAzul.append("Ser rico, mas morre daqui a um mes")
resultadoAzul.append("Ser amigo do Homem - Aranha")
resultadoAzul.append("Servir 7 anos em uma prisão violenta")
legendaAzul.text = resultadoAzul [(Int(numero1))]
}
@IBAction func botaoVermelho(_ sender: Any) {
var resultadoVermelho: [String] = []
let numero2 = arc4random_uniform( 6 )
resultadoVermelho.append("Mata você mesmo")
resultadoVermelho.append("Come qualquer coisa")
resultadoVermelho.append("Ser pobre, mas vive para sempre")
resultadoVermelho.append("Ser amigo do Homem - Formiga")
resultadoVermelho.append("Matar e comer seu cachorro")
legendaVermelho.text = resultadoVermelho [(Int(numero2))]
}
答案 0 :(得分:1)
您的主要问题是您对随机的最大值进行了硬编码,而且它太高了。你应该从数组中动态获取它。 count
。此外,没有理由重复append(_:)
个静态数据。只需使用数组文字。
@IBOutlet weak var legendaAzul: UILabel!
@IBOutlet weak var legendaVermelho: UILabel!
let resultadoAzul = ["Mata uma pessoa",
"Come um humano",
"Ser rico, mas morre daqui a um mes",
"Ser amigo do Homem - Aranha",
"Servir 7 anos em uma prisão violenta"
]
@IBAction func botaoAzul(_ sender: Any) {
let index = Int(arc4random_uniform(resultadoAzul.count))
legendaAzul.text = resultadoAzul[index]
}
let resultadoVermelho = [
"Mata você mesmo",
"Come qualquer coisa",
"Ser pobre, mas vive para sempre",
"Ser amigo do Homem - Formiga",
"Matar e comer seu cachorro"
]
@IBAction func botaoVermelho(_ sender: Any) {
let index = Int(arc4random_uniform(resultadoVermelho.count))
legendaVermelho.text = resultadoVermelho[index]
}