0

我想在 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 中最好的方法是什么?
4

1 回答 1

0

从你所说的,只要房子还活着,你就希望住在房子里的人“活着”,所以很明显房子必须“拥有”这些人。

然而,您的班级 Person 只是为了方便而维护对房子的引用,它并不拥有它(否则它会很糟糕!)

所以 :

class house
{
    var personArray : person[]
}

class person
{
    unowned var livingInHouse : house
    name : String
}

然后,您可以为您的房子提供一些方便的方法,例如:

func add(Person p)
{
personArray += p;
p.livingHouse = self;
}
于 2015-01-26T13:24:11.847 回答