Swift中的弱对象数组

时间:2015-01-26 12:55:53

标签: ios swift nspointerarray deinit

我想在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 个答案:

答案 0 :(得分:0)

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

你的班级然而,为了方便,人们只是保留了对房子的引用,它不拥有它(否则它会很糟糕!)

所以:

class house
{
    var personArray : person[]
}

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

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

func add(Person p)
{
personArray += p;
p.livingHouse = self;
}