NSURLConnection Никогда не закончить - PullRequest
0 голосов
/ 27 августа 2009

У меня есть следующий код:

NSURL *url = [NSURL URLWithString:@"http:...."];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [""soapMessage"" length]];

[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [""soapMessage"" dataUsingEncoding:NSUTF8StringEncoding]];
[theRequest setTimeoutInterval:20];

NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
[theConnection start];

Тогда иногда, когда я нажимаю много раз (просто чтобы попробовать, где может произойти сбой приложения) в моем интерфейсе в кнопках, назначенных для запуска нового соединения, соединение не дает ответ (Я отправляю запрос, но похоже, что он заблокирован).

Я хотел бы знать, что такое "setTimeoutInterval"? И если есть какие-то способы ограничить время ожидания одного ответа?

Спасибо!

1 Ответ

0 голосов
/ 27 августа 2009

Откуда вы знаете, что запрос начался в первую очередь? Возможно, вы ожидаете ответа на запрос, который так и не был запущен.

Похоже, вы не тестируете, чтобы theConnection был установлен на nil. также theRequest и url также могут быть nil, если вам не хватает памяти.

...