Как происходит сохранение циклов в управлении памятью? - PullRequest
0 голосов
/ 10 июля 2010

Может ли кто-нибудь объяснить проблему сохранения циклов в примере программы?

Ответы [ 2 ]

3 голосов
/ 10 июля 2010

Рассмотрим следующее:

NSMutableArray *a = [NSMutableArray array];
NSMutableArray *b = [NSMutableArray array];
[a addObject:b];
[b addObject:a];

Когда b вставляется в a, b сохраняется, также a, когда оно вставляется в b. Поскольку оба теперь имеют сильную ссылку друг на друга, ни один из них не будет освобожден, если вы не прервете цикл, например, вручную. удаляя одно из другого.

Обратите внимание, что руководство по управлению памятью какао также содержит раздел о циклах хранения и содержит объяснение слабых ссылок , которые помогают при этих проблемах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...