Этого не произойдет, если я просто изменю свойства вместо замены ссылки на новый объект.
Вот класс Person , который является ссылочным типом,
class Person {
var firstName: String
var lastName: String
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
}
Вот пример Person ,
var someone = Person(firstName: "Johnny", lastName: "Appleseed")
, затем я создаю массив, содержащий значения типа Person
var lotsOfPeople = [someone, someone, someone]
Полагаю lotsOfPeople содержит 3 ссылки на кого-то .Но если я изменю третье значение в lotsOfPeople,
lotsOfPeople[2] = Person(firstName: "Lucy", lastName: "Swift")
кто-то само не изменится.
print(someone.firstName) // Johnny
Я думаю, что это означает lotsOfPeople [2] не является ссылкой на кого-то .Как это могло произойти?