Выделение и инициализация NSString

В чем разница между:

NSString *string1 = @"This is string 1.";

и

NSString *string2 = [[NSString alloc]initWithString:@"This is string 2.];

Почему я Я не выделяю и не инициализирую первую строку, но она все еще работает? Я думал, что должен выделить NSString, поскольку это объект?

В Cocoa Touch,

-(IBAction) clicked: (id)sender{
   NSString *titleOfButton = [sender titleForState:UIControlStateNormal];
   NSString *newLabelText = [[NSString alloc]initWithFormat:@"%@", titleOfButton];
   labelsText.text=newLabelText;
   [newLabelText release];
}

Почему я не выделяю и не инициализирую строку titleOfButton? Делает ли это метод, который я вызываю?

Кроме того, я использую XCode 4, но мне не нравится iOS 5 и тому подобное, поэтому я не использую ARC, если это важно. Пожалуйста, не говорите, что должен, я я здесь, чтобы узнать, почему это так. Спасибо!

11
задан Jon Wei 13 February 2012 в 01:23
поделиться