ich einen Absturz zu sehen, dass 10 oder 20 Sekunden passiert, nachdem eine POST-Anforderung I hat (didReceiveResponse
, didReceiveData
und connectionDidFinishLoading
alle Feuer gut, bevor der Absturz passiert) fertig zu machen.iPhone SDK: Ausbuchen NSData mit NSMutableURLRequest Ergebnissen in mysteriösem Absturz
Dies ist der Code, den ich mit der Bitte an Sie:
NSURL* url = [[NSURL alloc] initWithString:urlString];
[urlString release];
NSData* requestData = [jsonData dataUsingEncoding:NSUTF8StringEncoding];
NSString* requestDataLengthString = [[NSString alloc] initWithFormat:@"%d", [requestData length]];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:requestData];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:requestDataLengthString forHTTPHeaderField:@"Content-Length"];
[request setTimeoutInterval:30.0];
[url release];
[requestData release];
[requestDataLengthString release];
m_URLConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[request release];
Was ist mit diesem Crash sehr merkwürdig ist, ist dies: wenn ich nicht setHTTPBody mit meinem NSData
Objekt, setValue:@"application/json"
für Content-Type
telefoniere und setValue:requestDataLengthString
für Content-Length
, der Absturz tut nicht passieren. Ich bin völlig verwirrt, was passiert. Soweit ich das beurteilen kann, steht der Absturz in direktem Zusammenhang mit dem Senden eines NSData
Objekts mit meiner Anfrage. Wenn es nicht zum Absturz bringen, die oberen Elemente in den Call-Stack für den Absturz (EXEC_BAD_ACCESS
) sind die folgenden:
objc_msgSend
CFRelease
HTTPMessage::~HTTPMessage
_CFRelease
HTTPWriteFilter::~HTTPWriteFilter
Kann jemand an etwas denken, das ich könnte falsch machen? Ich bin völlig ratlos, was ich falsch mache, wie ich es beheben kann oder wie ich es umgehen kann. Gibt es einen besseren Weg, um Daten zu senden als ich?
Nur um etwas zu versuchen: Stürzt es immer noch ab, wenn Sie die Zeile [requestData release] entfernen? – squelart