我正在学习learn-swift playground,并在学习该语言时将其升级为Swift 2.0.下面的代码(可能与以前版本的Swift一起使用)现在生成了两个错误:"在初始化所有存储属性之前使用"self"和"在初始化之前使用常量"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,我发现我可以将let capitalCity: City!
改为var capitalCity: City!
,语法错误得到解决.
我意识到,在这个人为的例子中,一个国家的首都可以改变,所以这很好,但如果有一个 case ,其中的价值真的是一个常数...
有没有办法在保持capitalCity不变的情况下解决语法错误?