Ваш код в этом случае должен автоматически высвобождать ваш объект, так как вы передаете владение вызывающему коду, вы больше не хотите нести ответственность за него в методе, поэтому вы должны отказаться от своего удержания на нем.
Помните NARC - предполагается, что методы, начинающиеся с этих ключевых слов, НЕ являются авто-релизами ...
New, Alloc, Retain, Copy
Если ваш метод был назван newFoo
или copyFoo
тогда ваш код выше будет в порядке без автоматического освобождения.