【发布时间】:2015-10-19 21:35:46
【问题描述】:
我发现自己陷入了一个小难题。 我有一种情况,我可能会在两个同级级别对象之间创建循环依赖关系。我希望两者都留在内存中,并且没有一个实例比另一个更重要/更不重要。我应该任意让一方的指针变弱,而另一方的指针变强,还是我可以让双方都变弱而侥幸?
假设您有一个具有这样结构的对象模型...
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 的引用,反之亦然。
您将如何指定属性属性(弱/强)以使它们相互引用?
谢谢
【问题讨论】:
-
哪些事件会让您想从表中删除
FieldValue?哪些事件会让您想要删除FieldInfo? -
好吧,我猜应用程序正在关闭,或者显示此信息的视图消失了。
-
让父
table拥有这两个兄弟姐妹来定义它们的生命周期是否合理?你有没有父表的FieldInfo或FieldValue? -
他们总是有一个父表。我只是考虑从“FieldValue”返回到其
FieldInfo或反之亦然的便利性,而不是每个人都必须遍历表并让表执行某种枚举数组以找到相应的对象。 -
是否应该在视图消失时释放整个
ADatabaseTable及其所有子项?还是视图只显示单个字段或值?
标签: ios objective-c weak-references