Любая идея, почему sendSynchronousRequest
вызывает утечку внизу? Инструменты заявляют, что ответственный кадр составляет NSURLConnection
, и он указывает на NSCFString
, просочившийся в линию с sendSynchronousRequest
.Сообщение об утечках с 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
@Mike спасибо за подсказку, но я полностью осознаю, и это, конечно, не «основная» нить. Это фоновый поток, и мне действительно нужен синхронный результат, чтобы продолжить этот поток. – marcc