Почему setFrame увеличивает количество ссылок слоя? - PullRequest
0 голосов
/ 21 декабря 2008

Выполнение этого кода:

mainLyr = [[CALayer layer] retain];
[mainLyr setFrame:CGRectMake(0.0,0.0,23.0,23.0)];

в отладчике я обнаружил, что после retain счетчик ссылок mainLyr равен 2. Это правильно.

Но после setFrame количество ссылок увеличилось до 3. Почему? И как узнать, будет ли метод увеличивать или уменьшать счетчик ссылок (не могу найти это в справочном руководстве).

Ответы [ 2 ]

4 голосов
/ 21 декабря 2008

Грэм верен, но причина, по которой он увеличивает счетчик ссылок, заключается в том, что вы используете Core Animation здесь; изменение кадра слоя анимируется, и во время анимации целевой объект сохраняется. После продолжительности анимации (по умолчанию, 0,25 сек., Я полагаю) количество ссылок должно уменьшиться на 1.

4 голосов
/ 21 декабря 2008

Как уже много раз говорилось о стековом потоке, не полагайтесь на refcount для управления памятью. Следуйте правилам управления памятью , и у вас все будет хорошо.

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