Swift Struct无法将数组元素设置为0以上

时间:2018-03-28 01:25:07

标签: ios swift xcode

我有以下Swift结构:

pick

这就是我使用它的方式:

struct MainStruct : Decodable{
var array : [InternalArray]?
}

struct InternalArray : Decodable{
    var firstName : String?
    var lastName : String?
    var Number : Int?
}

当我设置数组元素[0]时似乎工作正常,但是当我尝试设置元素[1]时,我得到一个错误。也许有人知道我的实施有什么问题?

1 个答案:

答案 0 :(得分:2)

问题是你只有1个项目(索引0)。

让我们解压一下,首先我们在MainStruct变量中打开您的选项testing,然后打开可选的array

if let unwrappedTestingMainStruct = testing,
   let unwrappedArray = unwrappedTestingMainStruct.array {
    unwrappedArray.count       // = 1
}

然后,您尝试访问testing?.array![1],这将是数组中的第二项......它不存在。

如果你刚才有这条线:

testing?.array![1]

你会看到同样的错误