我有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