title: what's wrong with this simple code(objective c)?
body: <p>i want to download some webpages ,but this example code seems doesn't work.
  it prints "begin download" and then exits,why the delegates method does not be executed? 
  what's wrong in the example code?
  thanks</p>
  
  <pre><code>main.m
  
  #import &lt;Foundation/Foundation.h&gt;
  #import "Test.h"
  
  int main(int argc, const char * argv[])
  {
  
      @autoreleasepool {
          Test * test = [[Test alloc]init];
          [test downloadData];
  
      }
      [NSThread sleepForTimeInterval:21.0f];
  
      return 0;
  }
  
  Test.h
  
  
  #import &lt;Foundation/Foundation.h&gt;
  
  @interface Test : NSObject &lt;NSURLConnectionDelegate,NSURLConnectionDataDelegate,NSURLConnectionDownloadDelegate&gt;
  @property (retain) NSMutableData * receivedData;
  @property (retain) NSURLConnection * theConnection;
  - (void) downloadData;
  @end
  
  Test.m
  
  #import "Test.h"
  
  @implementation Test
  - (void) downloadData
  {
      NSURLRequest *theRequest=
        [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.sf.net/"]                                  
                         cachePolicy:NSURLRequestUseProtocolCachePolicy
                     timeoutInterval:60.0];
  
      _receivedData = [NSMutableData dataWithCapacity: 0];
  
  
  
      [NSURLConnection sendSynchronousRequest:theRequest
                            returningResponse:nil
                                        error:nil];
      NSLog(@"begin download");
  
      if (!_theConnection) {
  
          _receivedData = nil;
  
          // Inform the user that the connection failed.
  
      }
  }
  
  enter code here
  
  #pragma mark -
  #pragma mark NSURLConnectionDataDelegateenter code here methods
  
  - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
  
  {
      NSLog(@"1");
      [_receivedData setLength:0];
  
  }
  
  - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  
  {
      NSLog(@"2");
      [_receivedData appendData:data];
  
  }
  - (void)connection:(NSURLConnection *)connection
  
    didFailWithError:(NSError *)error
  
  {
      NSLog(@"3");
      _theConnection = nil;
  
      _receivedData = nil;
  
  
  
      // inform the user
  
      NSLog(@"Connection failed! Error - %@ %@",
  
            [error localizedDescription],
  
            [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
  
  }
  
  - (void)connectionDidFinishLoading:(NSURLConnection *)connection
  
  {
  
  
      NSLog(@"4");
      NSLog(@"Succeeded! Received %lu bytes of data",(unsigned long)[_receivedData length]);
  
  
  
      _theConnection = nil;
  
      _receivedData = nil;
  
  }
  
  -(void) connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL
  {
      NSLog(@"5");
  }
  @end
  </code></pre>