title: Delegate property gets unset?
body: <p>I'm running into a problem that I'm not sure how to solve. Let me just give some relevant code.</p>
  
  <p><strong>FrontpageViewController (viewDidLoad)</strong></p>
  
  <pre><code>NewsFetcher *newsFetcher = [[NewsFetcher alloc] initWithURL:url];
  newsFetcher.delegate = self;
  [newsFetcher loadData];
  </code></pre>
  
  <p><strong>NewsFetcher.h</strong></p>
  
  <pre><code>@property (nonatomic, unsafe_unretained) id &lt;NewsFetcherDelegate&gt; delegate;
  </code></pre>
  
  <p>I'm using unsafe_unretained because I want my app to work with iOS 4 as well, while still using ARC for convenience.</p>
  
  <p><strong>NewsFetcher.m</strong></p>
  
  <pre><code>- (id)initWithURL:(NSURL *)url {
  
      self = [super init];
  
      if (self) {
  
          self.url = url;
          self.receivedData = [[NSData alloc] init];
      }
  
      return self;
  }
  
  - (void)loadData {
  
      NSLog(@"%@", self.delegate); // FrontpageViewController, as expected
  
      NSURLRequest *request = [NSURLRequest requestWithURL:self.url 
                                               cachePolicy:NSURLRequestReloadIgnoringCacheData 
                                           timeoutInterval:15];
  
      if (self.connectionInProgress)
          [self.connectionInProgress cancel];
  
      self.connectionInProgress = [[NSURLConnection alloc] initWithRequest:request
                                                                  delegate:self
                                                          startImmediately:YES];
  }
  </code></pre>
  
  <p>This all works fine. NewsFetcher conforms to the NSURLConnectionDelegate protocol, so the next method that's being called is <code>connection:didReceiveData:</code>. However, when I do another <code>NSLog(@"%@", self.delegate)</code> within that method, I get varied results (EXEC_BAD_ACCESS, NSCFDictionary, etc.). I think this means that my <code>delegate</code> property points to a released object, which is weird because it's supposed to be the view controller that's still on screen (and therefore couldn't have been released, right?).</p>
  
  <p>How is my delegate available in one method, but not anymore in the next method? Does it have to do with the <code>unsafe_unretained</code>?</p>