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