违背类的封装,直接操作数据。感觉是一道挺经典的iOS面试题,没找到答案。会发生什么错误呢?

classInformation:NSObject{
varphoneNum:String?
varage:Int?
init(phone:String,age:Int){
self.phoneNum=phone
self.age=age
}
}
classPerson:NSObject{
varinfo:Information
varname:String
init(name:String,info:Information){
self.name=name
self.info=info
}
}
varinfo=Information(phone:"123",age:5)
varperson=Person(name:"deng",info:info)
person.info.phoneNum="123"
person.info.phoneNum="123"
这句代码,会引发什么错误?编译过了,项目跑起来,没事。我觉得,他直接操纵Information类的属性,违背了类的封装,应该是不能直接访问数据,应该要通过类暴露在外面的方法设置。面试上遇到的,感觉应该有更加深刻的原因。以前OC版的好像看到过,未仔细分析。
不负相思意
浏览 403回答 2
2回答

HUWWW

这个问题语言无关,试想一下如果一个类有birthday和age两个属性,这两个属性是不是相关的,如果采用你上述的方法有什么问题?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript