title: Objective C NSString* property retain count oddity
body: <p>I have the following example class:</p>
  
  <p>Test.h:</p>
  
  <pre><code>@interface Test : UIButton {
      NSString *value;
  }
  - (id)initWithValue:(NSString *)newValue;
  @property(copy) NSString *value;
  </code></pre>
  
  <p>Test.m:</p>
  
  <pre><code>@implementation Test
  @synthesize value;
  - (id)initWithValue:(NSString *)newValue {
      [super init];   
      NSLog(@"before nil value has retain count of %d", [value retainCount]);
      value = nil;
      NSLog(@"on nil value has retain count of %d", [value retainCount]);
      value = newValue;
      NSLog(@"after init value has retain count of %d", [value retainCount]);
      return self;
  }
  </code></pre>
  
  <p>Which produces the following output:</p>
  
  <pre><code>2008-12-31 09:31:41.755 Concentration[18604:20b] before nil value has retain count of 0
  2008-12-31 09:31:41.756 Concentration[18604:20b] on nil value has retain count of 0
  2008-12-31 09:31:41.757 Concentration[18604:20b] after init value has retain count of 2147483647
  </code></pre>
  
  <p>I am calling it like:</p>
  
  <pre><code>Test *test = [[Test alloc] initWithValue:@"some text"];
  </code></pre>
  
  <p>Shouldn't value have a retain count of 1?  What am I missing?  </p>
  
  <p>Thanks for your help.</p>