Есть ли небольшая неточность в текущем документе Apple по расширенному управлению памятью?

Документ Apple Advanced Memory Management довольно хорошо написан и точен, но мне интересно, что на диаграмме в нем есть:

(моя версия — 28 сентября 2011 г.)

enter image description here

, после allocи initсчетчик ссылок (или счетчик сохранения) равен 1, что является основным правилом управления памятью. После continueсчетчик ссылок теперь равен 2. Затем класс C отправляет объекту сообщение copy, и после этого объект по-прежнему имеет счетчик ссылок, равный 2. новый объект имеет счетчик ссылок 1.

Пока это соответствует правилам, но затем, в верхней части диаграммы, класс A отправляет объекту сообщение release, а счетчик ссылок должен быть равен 1? Вместо этого на диаграмме стоит цифра 2. Затем класс B также отправляет объекту сообщение release, и счетчик ссылок теперь должен быть равен 0. Вместо этого на диаграмме показана 1. Это правильно, или может есть другой способ читать схему, или может быть какая-то концепция не верна выше?

5
задан Mogsdad 1 March 2018 в 13:40
поделиться