Swift 1.0 or later
下面的代码创建了两个类Address和Person,并且创建了两个实例对象分别代表Ray和Brain.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class Address { var fullAddress: String var city: String init(fullAddress: String, city: String) { self.fullAddress = fullAddress self.city = city } } class Person { var name: String var address: Address init(name: String, address: Address) { self.name = name self.address = address } } var headquarters = Address(fullAddress: "123 Tutorial Street", city: "Appletown") var ray = Person(name: "Ray", address: headquarters) var brian = Person(name: "Brian", address: headquarters) |
假设Brain搬家到街对面的建筑物里,那么你会这样更新他的地址:
1 | brian.address.fullAddress = "148 Tutorial Street" |
这样做将会发生什么?错误出在什么地方呢?