title: Property not retaining (ARC)
body: <p>I have a modal view controller that is presented in the Form sheet style. It has a delegate protocol. I am implementing that protocol and assigning a delegate before presentation but its getting lost even though the property is strong. Any possible causes are welcome. Thanks!</p>
  
  <p>Here is the property declaration, as strong.</p>
  
  <pre><code>@protocol SDStoreViewDelegate &lt;NSObject&gt;
  // Methods
  @end
  
  @interface SDStoreViewController : UIViewController
  
  @property (strong, nonatomic) id &lt;SDStoreViewDelegate&gt; delegate;
  
  @end
  </code></pre>
  
  <p>This is where the object is created and the delegate set.</p>
  
  <pre><code>SDStoreViewController *store = [[SDStoreViewController alloc] init];
  [store setDelegate:self];
  
  NSLog(@"1 %@",store.delegate); // Returns Object as expected
  
  [self presentViewController:store animated:YES completion:^{
      NSLog(@"3 %@",store.delegate); // Returns Object as expected
  }];
  
  NSLog(@"4 %@",store.delegate); // Returns Object as expected
  </code></pre>
  
  <p>This is the viewDidLoad of SDStoreViewController. It has already lost it's delegate    </p>
  
  <pre><code>- (void)viewDidLoad
  {
      [super viewDidLoad];
      NSLog(@"3 %@",_delegate); //  Returns NULL
  }
  </code></pre>
  
  <p>This is the dismiss just because where the delegate would be called it it wasn't NULL.</p>
  
  <pre><code>- (void)dismiss:(id)sender
  {
      NSLog(@"5 %@",_delegate); // Returns NULL
  
      [self.delegate aMethod];
  }
  </code></pre>
  
  <p><strong>Update</strong></p>
  
  <p>I have used both <code>weak</code> and <code>strong</code> references. I have also used both <code>self.delegate</code> and <code>_delegate</code> to access the property. And as a point, the <code>aMethod</code> callback is not getting through which is what prompted this detective work to find where it is getting lost.</p>