我是swift的新手,我有一个简单的问题,查看了stackoverflow上的相关问题,没有一个是在swift 4中,所以我不得不问
这里我有一个在日志上看起来像这样的数组
["72 Wilson St, Manchester M11 2AZ, UK"] // 0
["Goldbergweg 117, 60599 Frankfurt am Main, Germany"] // 1
["Rondweg Zuid, 3817 Amersfoort, Netherlands"] // 2 am i right?
我用这段代码来获取其中的元素:
var stringArray = [String]()
stringArray.append(forss as! String)
print(stringArray
self.predit1.text = stringArray[2]
self.predit2.text = stringArray[0]
self.predit3.text = stringArray[1]
但得到:
线程1:致命错误:索引超出范围
答案 0 :(得分:3)
您声明了一个String
var stringArray = [String]()
然后您附加一个元素
stringArray.append(forss as! String)
这意味着只有索引0有效
stringArray[0]
你得到的
超出范围错误stringArray[1]
stringArray[2]
etc.
注意:
这个问题与Swift 4没有特别的关系。所有版本的Swift都表现出这种行为。
答案 1 :(得分:0)
就我在第一个代码块中看到的而言,看起来你有3个数组,每个数组只有一个字符串元素。 数组初始化应如下所示:
let stringArray = [
"72 Wilson St, Manchester M11 2AZ, UK", // 0
"Goldbergweg 117, 60599 Frankfurt am Main, Germany", // 1
"Rondweg Zuid, 3817 Amersfoort, Netherlands" // 2
]