sendSynchronousRequest
이 누출을 일으키는 이유는 무엇입니까? 계기는 책임있는 프레임이 NSURLConnection
이고 sendSynchronousRequest
과 함께 라인에서 누출 된 NSCFString
을 가리킨다.NSURLConnection에 대한 누출보고 문제 sendSynchronousRequest
이 내용은 OS 2.2 또는 그 이전에 알려진 문제 였지만 지금은 반드시 수정해야한다는 내용을 읽었습니다. 이견있는 사람?
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURL *url = [NSURL URLWithString:@"http://www.mysite.com/api/v1/dosomething"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20.0];
[request setHTTPMethod:@"POST"];
NSData *bodyData;
[request setValue:@"text/plain" forHTTPHeaderField:@"Content-Type"];
NSString *body = @"test";
bodyData = [body dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:bodyData];
[body release];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
NSHTTPURLResponse *response = nil;
NSError *error = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *responseString = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
어쨌든 동기식 연결을 사용하는 것은 꽤 끔찍합니다. 잠재적으로 긴 네트워크 작업을 실행하는 동안 주 스레드를 차단하고 있습니다. –
마이크가 일반적으로 말하는 것은 일반적으로 좋은 충고이지만, 단지 그것을 뉘앙스하게하는 것입니다. 메인 스레드가 아닐 수도있는 호출 스레드를 차단하고 있습니다. – nall
팁 @ 감사합니다.하지만 저는 완전히 알고 있습니다. 이것은 확실히 "주요"스레드가 아닙니다. 이것은 배경 스레드이며 실제로이 스레드를 계속하려면 동기 결과가 필요합니다. – marcc