我有2类,第一类具有从第二类继承的属性

class FirstModel{
var firstType : Secondmodel?
}
class Secondmodel{
   var secondType : Int?

}
现在我想为secondType设置一个值,所以我进行编码
    var Modelll = FirstModel()
    Modelll.firstType?.secondType = 100
当我尝试使用print(Modelll.firstType?.secondType)读取此属性时,它将返回nil所以第一个问题是为什么我看不懂这个
但是我尝试这样做
    var Modelll = FirstModel()
    var ModelSecond = Secondmodel()
    ModelSecond.secondType = 100
    Modelll.firstType = ModelSecond
    print(Modelll.firstType?.secondType)
它工作正常,打印出Optional(100)我真的不明白幕后发生了什么。谁能解释一下?

最佳答案

首先,所有变量和常量都应使用小写字母命名。仅使用大写字母的类,结构,协议,枚举等名称
您的问题是,当您初始化FirstModel时,默认情况下firstType变量为nil

var model = FirstModel()
print(model.firstType) //prints nil
所以你需要做
var model = FirstModel()
model.firstType = SecondModel() //use camel case in naming
model.firstType?.secondType = 100
print(model.firstType?.secondType) // prints 100

07-27 20:19