使用双向弱指针

Using bidirectional weak pointers

我发现自己陷入了一个小难题。 我有一种情况,我可能会在两个同级对象之间创建循环依赖。我希望两者都保留在内存中,并且两个实例都不 more/less 比另一个重要。我应该随意让一侧的指针变弱,另一侧变强,还是我可以让两侧都变弱?

假设您有一个具有如下结构的对象模型...

ADatabaseTable
   -(NSArray)fields
       FieldInfo  (field A)
       FieldInfo  (field B)
   -(NSArray)values
       FieldValue (field A - record 1)
       FieldValue (field A - record 2)
       FieldValue (field B - record 1)
       FieldValue (field B - record 2)

...并且您希望 FieldValue 引用 FieldInfo,反之亦然。

您将如何指定 属性 属性 (weak/strong) 以使它们相互引用?

谢谢

据推测 ADatabaseTablefields 数组和 values 数组具有强引用。

普通 NSArray 对其元素保留强引用,因此您已经不必担心数组中的元素会消失。

所以你可以让信息和值弱引用。