【发布时间】:2018-06-03 02:29:25
【问题描述】:
我有以下运行良好的程序 -
class Person {
var pet: Pet?
}
class Pet {
var name: String
var favoriteToy: Toy?
init(name: String) {
self.name = name
}
}
class Toy {
var name: String
init(name: String) {
self.name = name
}
}
let q = Person()
// Pet(name:"goofy")
// Toy(name:"teddy")
if let someToy = q.pet?.favoriteToy?.name {
print("This person's pet likes \(someToy).")
} else {
print("This person's pet does not have a favorite toy")
}
打印:
此人的宠物没有最喜欢的玩具
如何使用上面修改的代码打印“这个人的宠物喜欢泰迪”?
我知道我将无法使用if let,因为没有任何东西可以打开。所以我必须写这样的东西而不是if let:
let someToy = q.pet.favoriteToy.name
print("This person's pet likes \(someToy).")
应该打印“这个人的宠物喜欢泰迪熊。”
我也知道我必须像这样输入非零值:
class Person {
var pet = Pet ()
}
我仍然遇到初始化问题。该怎么办?
【问题讨论】:
-
您的代码打印
This person's pet does not have a favorite toy,因为q没有宠物套装,所以它是nil。给它分配一个宠物。并分配每个玩具。
标签: swift