
class Country{ let name: String let cAPItalCity: City! init(name: String,cAPItalname: String) { self.name = name self.cAPItalCity = City(name: cAPItalname,country: self) }}class City{ let name: String uNowned let country: Country init(name: String,country: Country) { self.name = name self.country = country }} 看到一个answer to a similar question我看到我可以改变让都市:城市!到大都会城市:城市!并解决语法错误.
我意识到,在这个例子中,一个国家的首都可以改变,所以这样会很好,但如果有一个价值真的是一个常数的情况怎么办?
有没有办法解决语法错误,同时保持cAPItalCity是一个常数?
在这种情况下,我建议您使该属性变为变量,但通过计算属性隐藏它(使其看起来像一个常量):class Country { let name: String private var _cAPItalCity: City! var cAPItalCity: City { return _cAPItalCity } init(name: String,cAPItalname: String) { self.name = name self._cAPItalCity = City(name: cAPItalname,country: self) }} 总结 以上是内存溢出为你收集整理的在所有存储的属性被初始化之前使用swift – ‘self’全部内容,希望文章能够帮你解决在所有存储的属性被初始化之前使用swift – ‘self’所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)