// 1.定義了三個(gè)類
class Person {
var name : String = ""
var dog : Dog?
}
class Dog {
var dogName : String = ""
var toy : Toy?
}
class Toy {
var price : Double = 0.0
func flying() {
print("飛盤正在flying")
}
}
// 2.創(chuàng)建三個(gè)對象
let p = Person()
p.name = "cdh"
let dog = Dog()
dog.dogName = "旺財(cái)"
let toy = Toy()
toy.price = 100
// 3.讓對象之間產(chǎn)生關(guān)系(cdh擁有一個(gè)叫旺財(cái)?shù)墓?這個(gè)狗有一個(gè)100塊錢的玩具)
p.dog = dog
dog.toy = toy
2.1 從可選鏈中取值
需求:獲取(cdh的旺財(cái)狗的玩具的價(jià)格)
取出的值為可選類型,因?yàn)榭蛇x鏈中有一個(gè)可選類型為nil,則返回nil
因此結(jié)果可能有值,可能為nil.因此是一個(gè)可選類型
// 4.獲取(cdh的旺財(cái)狗的玩具的價(jià)格)
// 以下寫法非常復(fù)雜, 需要多次 if 判斷, 因此推出可選鏈
if let cdhDog = p.dog {
if let toy = cdhDog.toy {
let price = toy.price
}
}
// let price = p.dog!.toy!.price // ?強(qiáng)制解包非常危險(xiǎn)