Как освободить объект класса NSUrlConnection, объект класса NSMutableData? - PullRequest
0 голосов
/ 28 сентября 2011

я делаю одно приложение. В этом я использую класс NSUrlconnection. Ниже один мой код.

- (void)viewDidLoad {
[super viewDidLoad];
responsedata = [[NSMutableData data] retain];
NSString *url = [NSString stringWithFormat:@"https://www.google.com"];
NSURL *URL = [NSURL URLWithString:url];
NSURLRequest *request=[[NSURLRequest alloc]initWithURL:URL];
[[NSURLConnection alloc] initWithRequest:request delegate:self];

[request release];
}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{

   [responsedata setLength:0];
}
 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[responsedata appendData:data];
   }

  - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    }
  - (void)connectionDidFinishLoading:(NSURLConnection *)connection {

     [connection release];
    }

В этом коде при выполнении iam он показывает утечку памяти при responsedata = [[NSMutableData data] retain]; [[NSURLConnection alloc] initWithRequest:request delegate:self]; в viewDidLoad(). Так, пожалуйста, сообщите мне, где он был освобожден.

1 Ответ

1 голос
/ 28 сентября 2011
  1. Вы должны сохранить ссылку на ваш NSURLConnection:

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

  2. Вы должны начать его:

    [connection start];

  3. И вы должны выпустить его в didFailWithError или connectionDidFinishLoading.

...