Слабый массив объектов в Swift

Я хотел бы создать массив объектов как свойство другого класса в Swift, например:

class person{
 var livingInHouse : house
 name : String
}
class house{
 var personArray : [person]
}

Мои ограничения:

  1. Я хотел бы легко получить доступ к объектам в personArray с помощью подписок: например, houseInstance.personArray[1].name = "Steve"
  2. Я хотел бы создать 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;
}
Другие вопросы по тегам