【问题标题】:Weak object array in SwiftSwift 中的弱对象数组
【发布时间】:2015-01-26 12:55:53
【问题描述】:

我想在 Swift 中创建一个对象数组作为另一个类的属性,例如:

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

我的限制是:

  1. 我想使用下标轻松访问 personArray 中的对象:例如houseInstance.personArray[1].name = "Steve"
  2. 我想创建personArray,以便在释放houseInstance 对象时释放person 对象。 Swift 中最好的方法是什么?

【问题讨论】:

标签: ios swift nspointerarray deinit


【解决方案1】:

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

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

所以:

class house
{
    var personArray : person[]
}

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2021-01-15
    • 1970-01-01
    • 2020-11-16
    • 2019-01-19
    • 2021-06-11
    相关资源
    最近更新 更多