classInformation:NSObject{varphoneNum:String?varage:Int?init(phone:String,age:Int){self.phoneNum=phoneself.age=age}}classPerson:NSObject{varinfo:Informationvarname:Stringinit(name:String,info:Information){self.name=nameself.info=info}}varinfo=Information(phone:"123",age:5)varperson=Person(name:"deng",info:info)person.info.phoneNum="123"person.info.phoneNum="123"這句代碼,會(huì)引發(fā)什么錯(cuò)誤?編譯過了,項(xiàng)目跑起來(lái),沒事。我覺得,他直接操縱Information類的屬性,違背了類的封裝,應(yīng)該是不能直接訪問數(shù)據(jù),應(yīng)該要通過類暴露在外面的方法設(shè)置。面試上遇到的,感覺應(yīng)該有更加深刻的原因。以前OC版的好像看到過,未仔細(xì)分析。
違背類的封裝,直接操作數(shù)據(jù)。感覺是一道挺經(jīng)典的iOS面試題,沒找到答案。會(huì)發(fā)生什么錯(cuò)誤呢?
不負(fù)相思意
2019-05-25 13:48:10