Этот вопрос задавался много раз раньше.Взгляните на эту статью , в которой обобщены все возможные ситуации.
По сути, вы сохраняете объект, если берете его под контроль.Допустим, вы получили строку, используя NSString
s stringWithFormat
.Согласно статье выше, этот тип метода будет возвращать результат autorelease
.Если вы будете использовать этот результат в течение более длительного периода, скажем, дольше, чем объем, в котором он получен, тогда вы захотите retain
указать, что вы будете «контролировать» этот результат.В противном случае он release
сам (подсказка: авто-релиз) подумает, что он больше никому не нужен.
Если вы прочитаете статью, вы увидите, что делать в каких случаях (она довольно конкретна и лаконична),Зная это, вы принимаете решение, основываясь на том, понадобится ли вам объект дольше ожидаемого.
Если вы используете свойства с атрибутом retain
, то об этом позаботятся за вас.автоматически.Используя приведенный выше пример:
my.property = [NSString stringWithFormat:@"%f", 0.2f];
Результат будет автоматически сохранен, поскольку вы используете свойство.