Слабый массив объектов в Swift
Я хотел бы создать массив объектов как свойство другого класса в Swift, например:
class person{
var livingInHouse : house
name : String
}
class house{
var personArray : [person]
}
Мои ограничения:
- Я хотел бы легко получить доступ к объектам в personArray с помощью подписок: например,
houseInstance.personArray[1].name = "Steve"
- Я хотел бы создать
personArray
таким образомperson
объекты освобождаются, когдаhouseInstance
объект освобожден Каков наилучший метод в Swift, чтобы сделать это?
1 ответ
Из того, что вы говорите, вы хотите, чтобы человек жил в доме "живым", пока их дом жив, поэтому очевидно, что дом должен "владеть" людьми.
Тем не менее, ваш классный человек просто для удобства поддерживает ссылку на дом, ему не принадлежит (иначе это было бы плохо!)
так:
class house
{
var personArray : person[]
}
class person
{
unowned var livingInHouse : house
name : String
}
Затем вы могли бы предоставить некоторые удобные методы для вашего дома, такие как:
func add(Person p)
{
personArray += p;
p.livingHouse = self;
}