Я нахожусь в маленькой загадке. У меня есть ситуация, когда я могу создать круговую зависимость между двумя объектами уровня сестры. Я хочу, чтобы оба остались в памяти, и ни один пример не является более/менее важным, чем другой. Должен ли я просто произвольно сделать указатель одной стороны слабым, а другой сильным, или я могу уйти с тем, чтобы обе стороны были слабыми?Использование двунаправленных слабых указателей
Допустим, у вас объектную модель со структурой, как это ...
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»? –
Ну, я думаю, приложение shutting down или вид, отображающий эту информацию. –
Насколько разумно иметь родительскую 'таблицу', чтобы оба из этих братьев и сестер определяли свой жизненный цикл? Имеете ли вы когда-либо поле «FieldInfo» или «FieldValue» без родительской таблицы? – Jonah