Поскольку вы возвращаете объект, созданный методом, который не запускается с alloc, copy, mutableCopy, конвенция говорит, что вы должны автоматически выпустить его.Если вызывающему методу необходимо, чтобы он оставался без присмотра, он сохранит его.
Прочтите руководство по управлению памятью:
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html
Вот правила:
1 и 3 применяются к этому методу.2 относится к вызывающему классу, который может нуждаться в его хранении.
1 - Вы владеете любым создаваемым вами объектом Вы создаете объект, используя метод, имя которого начинается с«Alloc», «new», «copy» или «mutableCopy» (например, alloc, newObject или mutableCopy).
2 - Вы можете стать владельцем объекта, используя команду retain Полученный объект обычно гарантированно остается действительным в методе, в котором он был получен, и этот метод также может безопасно вернуть объект своему вызывающему.Вы используете retain в двух ситуациях: (1) В реализации метода доступа или метода init, чтобы стать владельцем объекта, который вы хотите сохранить как значение свойства;и (2) для предотвращения того, чтобы объект был признан недействительным как побочный эффект какой-либо другой операции (как описано в разделе «Избегайте освобождения от выделения объектов, которые вы используете»).
3 - Когда выВам больше не нужно, вы должны отказаться от владения принадлежащим вам объектом Вы отказываетесь от владения объектом, отправив ему сообщение о выпуске или сообщение об автоматическом выпуске.В терминологии Какао отказ от права собственности на объект, таким образом, обычно называется «освобождением» объекта.
4 - Вы не должны отказываться от владения объектом, которым вы не владеете Это простоследствие предыдущих правил политики, изложенных в явном виде.