Это то, что некоторые люди называют параметром "out".
Вы не передаете указатель на объект NSError, вы передаете указатель на локальную переменную . Это дает вызываемому методу возможность изменять вашу локальную переменную; в этом случае назначить его экземпляру NSError.
Возможно, сбивает с толку то, что локальная переменная, которую вы передаете save:
, сама по себе является указателем, поэтому тип переменной заканчивается указателем на указатель.
В итоге, это указатель на локальную переменную, и он работает одинаково, независимо от того, является ли локальная переменная int
или NSError*
.