【发布时间】:2020-01-16 22:34:08
【问题描述】:
我是 swift 的初学者,我曾尝试使用 random,但出现此错误:
不能用“UInt32”类型的参数为“[String]”类型的值下标
我不明白为什么。这是我的代码:
import UIKit
class ViewController: UIViewController {
var Person = ["jean Michel" , "antoine roubet" , "samuel demets" , "zater burkov", "Gochnik samuel"]
var city = ["De Paris","De Monreal","Du Maroc","De Tunis","De sarcelles","De roubaix"]
@IBOutlet weak var quoteLabel: UILabel!
@IBAction func changeQuote() {
var randomIndex = arc4random_uniform(UInt32(Person.count))
var thePerson = Person[randomIndex]
print(thePerson)
var randomIndex2 = arc4random_uniform(UInt32(city.count))
var theCity = city[randomIndex2]
print(theCity)
quoteLabel.text = "le texte est modifié"
}
}
【问题讨论】:
-
不相关,但很重要:1) Swift 中的值应该有
lowerCamelCase名称。UpperCamelCase名称仅为类型保留。 2) 数组通过将它们的名称设为复数来更清楚地表达。people代替Person,cities代替city。另外,您不必添加像the这样的任意词来区分。let city = cities.randomElement()。简单!