Swift 4:数组索引超出范围

时间:2017-11-18 09:06:12

标签: swift

我是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:致命错误:索引超出范围

2 个答案:

答案 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
]