Метод, который вы используете для выделения строки, важен.
У вас есть два основных способа размещения вашей строки:
NSString *loginURL = [[NSString alloc] initWithFormat:@"%@authenticate", ScriptURLString];
По сравнению с:
NSString *loginURL = [NSString stringWithFormat:@"%@authenticate", ScriptURLString];
Во-первых, в соглашениях о Какао говорится, что, поскольку вы создали объект с помощью сообщения alloc, вы «владеете» им и несете ответственность за его освобождение.
Для последнего соглашение состоит в том, что, поскольку вы создали объект, созданный методом «удобства» класса, вы НЕ являетесь его владельцем и не несете ответственности за его освобождение. Класс (здесь NSString) несет ту ответственность, которую он будет выполнять через пул авто-релиза.
Подводя итог, можно сказать, что когда вы явно создаете что-то с помощью alloc / init, вы должны его освободить. При использовании метода стиля [NSThing thingWithXXX]
вы не должны этого делать.