Почему не поддерживается сохранение счета в проекте с поддержкой ARC

Сохранение счетчиков - это способ управления памятью в Objective-C. Когда вы создаете объект, у него есть счет сохранения 1. Когда вы отправляете объекту сохраненное сообщение, его количество удержания увеличивается на 1, что мы знаем, что ARC делает это автоматически, но как он делает то, что он использует?

И я все еще задаюсь вопросом, выполняется ли управление памятью автоматически, почему иногда мы получаем неверную ошибку доступа для размещения или поиска объектов.

Я уже перешел по этой ссылке: - https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html

Ответ 1

Я думаю, что ARC (сделанный компилятором во время компиляции, вставив команду keep/release, где "необходимо" ) полагается на область переменной, блок кода, где они определены (т.е. инициализированы), и если его значение равно хранится в другой переменной, объем которой шире, чем область исходной переменной.

Вот почему вы должны более точно указать тип доступа и хранения переменных: информировать компилятор о своих намерениях с помощью переменной.

Но я тоже думаю, что ARC не может видеть дальше текущего файла. ARC более сложна с глобальными переменными и зависимостями между файлами.

Итак, Apple - более сложная грамматика описания переменных, чтобы заменить очень простой (IMO) шаблон сохранения/выпуска. Поэтому разработчикам не нужно беспокоиться об управлении памятью.

Это позволит экосистеме Apple быть доступной для гораздо большего числа разработчиков, используемых для управляемых языков (например, веб-разработчиков) для разработки для iOS.

Я думаю, что ошибочно заставить разработчиков полагать, что вы можете эффективно развиваться, не понимая такой фундаментальной концепции в области ИТ, как управление памятью.

Но больше разработчиков для iOS означает больше разработанных программ и более стабильную экосистему с точки зрения активности, поэтому больше доходов для Apple:-)