Я новичок в разработке приложений для iPhone и не могу исправить эту ошибку, когда запустил анализатор утечек (XCode-> Product-> Analyze) над своим кодом. И это показало мне потенциальную утечку объекта на некоторой линии.
1) Метод возвращает целевой объект c с счетом удержания +1 (из-за ссылки)
2) объект, размещенный в строке 128, не упоминается позже в этом пути выполнения и имеет счетчик +1 (объект утек). ResponeData сохраняется в части объявления свойства
-(IBAction)registerButtonPressed:(id)sender
{
self.responseData = [NSMutableData data];
NSString *username = txtUsername.text;
NSString *jsonstring = [NSString stringWithFormat:@"http://demo.elgghub.com/apis/services/api/rest/json/?method=register&username=%@",username];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:jsonstring]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (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 {
[connection release];
self.responseData = nil;
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Error"
message:@"Please check your network connection and relaunch the application"
delegate:self
cancelButtonTitle:@"Dismiss"
otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[connection release];
NSString *responseStringReg = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
self.responseData = nil;
NSDictionary *login =(NSDictionary*)[responseStringReg JSONValue] ;
[responseStringReg release];
NSNumber *status = [login objectForKey:@"status"];
NSString *statusString = [status stringValue];
NSString *message = [login objectForKey:@"message"];
}
-(void)dealloc
{
[responseData release];
[demoView release];
[super dealloc];
}