Это правильно. Поскольку вы инициализируете объект, вы обязаны освободить или автоматически выпустить его.
Поскольку счет сохранения при создании равен 1, и вы хотите, чтобы он не был удален до того, как вызывающий метод сможет использовать объект, autorelease является правильным сообщением для отправки.
Если бы вы отправили релиз, память была бы немедленно восстановлена. Посылая автоматическое освобождение, память не будет возвращена до тех пор, пока не будет истощен пул автоматического освобождения по умолчанию, что произойдет только после того, как вызывающий метод сможет сохранить объект, если это необходимо.