title: Automatic Reference Counting Issue: Passing address of non-local object to __autoreleasing parameter for write-back
body: <p>I'm trying to pass pointer to pointer to a method, but apparently ARC has some issues with how I'm doing it. Here the two methods:</p>
  
  <pre><code>+ (NSString *)personPropertyNameForIndex:(kSHLPersonDetailsTableRowIndex)index 
  {
      static NSArray *propertyNames = nil;
  
      (nil == propertyNames) ? 
          [self SHL_initPersonPropertyNamesWithArray:&amp;propertyNames] : NULL;
  }
  
  + (void)SHL_initPersonPropertyNamesWithArray:(NSArray **)theArray
  {
      *theArray = [[NSArray alloc] 
                   initWithObjects:@"name", @"email", @"birthdate", @"phone", nil];
  }
  </code></pre>
  
  <p>I receive the following error:</p>
  
  <blockquote>
    <p>Automatic Reference Counting Issue: Passing address of non-local object to __autoreleasing parameter for write-back </p>
  </blockquote>
  
  <p>On the line which the following command appears:</p>
  
  <pre><code>[self SHL_initPersonPropertyNamesWithArray:&amp;propertyNames] : NULL;
  </code></pre>