关于ios:使用双向弱指针

Using bidirectional weak pointers

我发现自己陷入了一个小难题。
我有可能在两个同级对象之间创建循环依赖关系。 我希望两者都保留在内存中,并且两个实例都不比另一个实例重要。 我应该只是任意地使一侧的指针变弱,而另一侧则变强,还是可以让双方都变弱呢?

假设您的对象模型具有这样的结构...

1
2
3
4
5
6
7
8
9
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,反之亦然。

您如何指定属性属性(弱/强)以使它们相互引用?

谢谢


假定ADatabaseTablefields数组和values数组有很强的引用。

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

因此,您可以使信息和值之间的引用弱。