title: NSString allocation and initializing
body: <p>What is the difference between:</p>
  
  <pre><code>NSString *string1 = @"This is string 1.";
  </code></pre>
  
  <p>and</p>
  
  <pre><code>NSString *string2 = [[NSString alloc]initWithString:@"This is string 2.];
  </code></pre>
  
  <p>Why am I not allocating and initializing the first string, yet it still works? I thought I was supposed to allocate NSString since it is an object? </p>
  
  <p>In Cocoa Touch,</p>
  
  <pre><code>-(IBAction) clicked: (id)sender{
     NSString *titleOfButton = [sender titleForState:UIControlStateNormal];
     NSString *newLabelText = [[NSString alloc]initWithFormat:@"%@", titleOfButton];
     labelsText.text=newLabelText;
     [newLabelText release];
  }
  </code></pre>
  
  <p>Why do I not allocate and initialize for the titleOfButton string? Does the method I call do that for me? </p>
  
  <p>Also, I'm using XCode 4, but I dislike iOS 5, and such, so I do not use ARC if that matters. Please don't say I should, I am just here to find out why this is so. Thanks!</p>