は私がなぜ両方のオブジェクトが自動的に変更されたのですか?ここで
class Person{
var name: String
var address: Address
init(name: String, address: Address){
self.name = name
self.address = address
}
}
class Address {
var city: String
var country: String
init(city: String, country: String){
self.city = city
self.country = country
}
}
var address = Address(city: "New York", country: "USA")
var person1 = Person(name: "John", address: address)
var person2 = Person(name: "Adam", address: address)
person1.address.city = "Washington"
print(person1.address.city)
print(person2.address.city)
を定義したクラスである私はPERSON1アドレスの都市を変更しますが、なぜPERSON2都市の変更をした、そしてどのように私はこの問題を克服するのですか?
JamesがSwiftで参照によって変数を渡すことを指摘しているように。あなたが望む振る舞いに対して、クラスを値によって変数を渡す構造体に変更します。 – beyowulf