gpt4 book ai didi

swift - 将元素添加到可选数组出现零?

转载 作者:搜寻专家 更新时间:2023-10-31 22:15:17 26 4
gpt4 key购买 nike

这就是我得到的:

  • 所有者类
  • 宠物类
  • 宠物类

所有者类

此类简单地声明了一个 Pet 类型的变量 Pet?

class Owner {
var pet: Pet?
}

宠物类

此类简单地声明了一个空数组 PetType

class Pet {
var pets = [PetType]()
}

PetType 类

两个存储变量:petType(例如 Dog)和 petName(例如 Harris)和一个基本的 init 方法两个参数:petTypepetName

class PetType {
var petType: String
var petName: String

init(petType: String, petName: String) {
self.petType = petType
self.petName = petName
}
}

注意这一切都是在Playground

中完成的
let owner = Owner() // returns {nil}
var firstPet = PetType(petType: "Dog", petName: "Harris") // returns {petType "Dog" petName "Harris"}
owner.pet?.pets.append(firstPet) // returns nil
owner.pet?.pets[0].petName // returns nil

我在这里做错了什么?

最佳答案

Owner 有一个从未初始化的属性。通过内联:

class Owner {
var pet: Pet? = Pet()
}

您的代码按预期工作。

如果您不想内联初始化它,那么您必须相应地使用 Owner 修改代码:

let owner = Owner()
var firstPet = PetType(petType: "Dog", petName: "Harris")

owner.pet = Pet() // <-- here you have to initialize the `pet` property
owner.pet?.pets.append(firstPet)
owner.pet?.pets[0].petName

关于swift - 将元素添加到可选数组出现零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31139967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com