我不确定但在结构I中设置一个值后,在尝试读取变量时得到nil:
struct MainStruct : Decodable{
var array : [InternalArray]?
}
struct InternalArray : Decodable{
var firstName : String?
var lastName : String?
var Number : Int?
}
var testing: MainStruct?
testing?.array![0].firstName = "TEST"
print("test value \(testing?.array![0].firstName!)")
打印 nil
答案 0 :(得分:5)
首先,你使用了太多的选项。
三个(!)问题:
Testing
未初始化。InternalArray
未初始化。struct MainStruct : Decodable {
var array = [InternalArray]()
}
struct InternalArray : Decodable {
var firstName : String?
var lastName : String?
var Number : Int?
}
var testing = MainStruct()
testing.array.append(InternalArray())
testing.array[0].firstName = "TEST"
print("test value \(testing.array[0].firstName!)")
答案 1 :(得分:4)
您尚未初步测试。
答案 2 :(得分:0)
这应该有效
var testing: MainStruct? = MainStruct()
testing?.array = []
testing?.array!.append(InternalArray())
testing?.array![0].firstName = "TEST"