2009-08-26 13 views
0

i den nächsten Code hat:NSURLConnection beenden Nie

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]; 

Dann manchmal, wenn ich eine Menge Zeit klicken (Nur um zu versuchen, wo die App nicht kann) in meiner Schnittstelle in den zugeordneten Tasten starten eine neue Verbindung, die Verbindung gibt keine Antwort (ich sende die Anfrage aber sieht aus wie ist nach blockiert).

würde Ich mag wissen, was ist die Verwendung von „setTimeoutInterval“? und wenn es einige Möglichkeiten, um Grenze der Zeit eine Antwort zu warten?

Vielen Dank!

Antwort

0

Wie wissen Sie, dass der Antrag in erster Linie begonnen? Möglicherweise warten Sie auf eine Antwort für eine Anfrage, die nie gestartet wurde.

Es scheint, dass Sie nicht testen, ob theConnection auf eingestellt ist. auch theRequest und url könnte auch nil sein, wenn Sie über genügend Arbeitsspeicher ausgeführt.

+0

Vielen Dank, aber ich mache Protokoll jedes Teil, und ich sended es. Anyway gibt es eine Methode, um die Zeit zu begrenzen? –

+0

Die Protokollierung befand sich nicht in dem Code, den Sie eingefügt haben, daher gab es keine Möglichkeit zu sagen, dass Sie diese Dinge aus Ihrem Code heraus protokolliert haben. – corydoras