Да, все в порядке. После выполнения этого кода в памяти будет три NSString
объекта:
- Созданный
[TBXML textForElement:tempElement]
- Созданный
[urlString stringByReplacingOccurrencesOfString:@" " withString:@"%20"]
- Созданный
[urlString stringByReplacingOccurrencesOfString:@"&" withString:@"&"]
Каждый из них будет иметь счет сохранения 1, но будет автоматически освобожден. Поскольку вы не сохраняете ссылки на 1. или 2., вы никак не сможете увеличить их количество сохраняемых данных впоследствии, поэтому в конце текущей итерации цикла выполнения они будут autoreleased, их счетчики сохранятся в 0, и они будут освобождены.
Третий находится в той же лодке, но у вас есть ссылка на него, поэтому, если вы делаете что-то, чтобы увеличить его счетчик сохранения (например, присвойте его strong
@property или добавьте его к NSArrray
) тогда он может продолжать существовать после этой итерации цикла выполнения. Или, если вы просто используете его в качестве параметра для какой-либо функции (возможно, вы просто используете его в NSString stringWithFormat:
позже, он будет освобожден вместе с двумя другими.