autorelease - это не ключевое слово, это метод, это означает, что этот конкретный объект, получивший вызов, был добавлен в текущий пул автоматического освобождения (который обычно создается Cocoaсам при выполнении событий) и после того, как пул будет очищен, этот объект будет освобожден из памяти, поэтому вам не нужно заботиться о выполнении явного освобождения.
Если у вас не было этого вызова, вам пришлось бы освободитьэтот объект самостоятельно, как только вы закончили его использовать.
Используя autorelease , вы должны убедиться, что в настоящее время доступен пул с автоматическим выпуском, как если бы его не было, утечка вашего объектаи это память не будет востребована.Обычно, когда вы имеете дело с событиями из компонентов Какао, вы можете полагаться на это, в противном случае вы должны создать свой собственный пул авто-релизов.Для получения дополнительной информации обратитесь к официальной документации Apple об этом .
Кроме того, вы не должны вызывать autorelease для объекта, который вы не создали с помощью alloc , это обычное явление.Поведение в библиотеках, основанных на Какао, для инициализации методов, автоматически высвобождающих объекты, поэтому любой метод, который создает объект, но не включает в себя alloc или copy, обычно означает, что объект уже был автоматически освобожден, и вам не следует вызывать его снова.