在所有存储的属性被初始化之前使用swift – ‘self’

在所有存储的属性被初始化之前使用swift – ‘self’,第1张

概述我正在通过一个 learn-swift playground,并升级到Swift 2.0,当我学习语言.以下代码(可能与以前版本的Swift一起使用)现在会生成两个错误:“在所有存储属性初始化之前使用”“self”,在初始化之前使用“Constant”self.capitalCity“ class Country{ let name: String let capitalCi 我正在通过一个 learn-swift playground,并升级到Swift 2.0,当我学习语言.以下代码(可能与以前版本的Swift一起使用)现在会生成两个错误:“在所有存储的属性被初始化之前使用”“self”,在初始化之前使用“Constant”self.cAPItalCity“
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’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1027466.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存