Ответ 1
Я думаю, что ARC (сделанный компилятором во время компиляции, вставив команду keep/release, где "необходимо" ) полагается на область переменной, блок кода, где они определены (т.е. инициализированы), и если его значение равно хранится в другой переменной, объем которой шире, чем область исходной переменной.
Вот почему вы должны более точно указать тип доступа и хранения переменных: информировать компилятор о своих намерениях с помощью переменной.
Но я тоже думаю, что ARC не может видеть дальше текущего файла. ARC более сложна с глобальными переменными и зависимостями между файлами.
Итак, Apple - более сложная грамматика описания переменных, чтобы заменить очень простой (IMO) шаблон сохранения/выпуска. Поэтому разработчикам не нужно беспокоиться об управлении памятью.
Это позволит экосистеме Apple быть доступной для гораздо большего числа разработчиков, используемых для управляемых языков (например, веб-разработчиков) для разработки для iOS.
Я думаю, что ошибочно заставить разработчиков полагать, что вы можете эффективно развиваться, не понимая такой фундаментальной концепции в области ИТ, как управление памятью.
Но больше разработчиков для iOS означает больше разработанных программ и более стабильную экосистему с точки зрения активности, поэтому больше доходов для Apple:-)