Почему слишком много выпусков приводят к Cra sh в AR C? - PullRequest
1 голос
/ 09 мая 2020

Я смотрю видеоролик WWD C 2013 под названием «Устранение проблем с памятью»

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

Насколько я понимаю, 1 счетчик ссылок означает +1 в AR C для этого объекта, поскольку многие вещи ссылаются друг на друга, может существовать какая-то ссылка, которая не используются другими кодами. Это приводит к утечкам. Но почему слишком много выпусков приводят к сбоям? 0 - это минимальное счетное число, которое может go объект? Если да, то почему это приведет к сбоям?

enter image description here

1 Ответ

2 голосов
/ 09 мая 2020

Показанный вами слайд относится к ручным процессам, которые вы должны были использовать до Automati c Подсчет ссылок (AR C).

Без AR C программист отвечает за вызов retain и release для управления счетчиком ссылок на объект.

Счетчик ссылок положительный, ненулевой, когда объект все еще требуется, и 0, когда он больше не нужен.

Если вы вызвали release, когда счетчик ссылок уже был равен 0, ваша программа была прекращена, так как это указывает на ошибку в вашем коде.

Поскольку отслеживать, когда объект больше не требуется в сложных потоках выполнения, сложно, чрезмерное и недостаточное освобождение (приводящее к утечкам и сбоям) является обычным явлением, если вы не используете AR C

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