widzę awarię, co dzieje się 10 lub 20 sekund po żądanie POST robię zakończył (didReceiveResponse
, didReceiveData
i connectionDidFinishLoading
wszystko ogień dobrze przed katastrofą dzieje).iPhone SDK: księgowania NSData z wynikami NSMutableURLRequest w tajemniczej katastrofie
Jest to kod używam, aby wniosek:
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];
Co jest bardzo dziwne o tej katastrofie jest taka: jeśli I nie nazywaj setHTTPBody z moim NSData
obiektu, setValue:@"application/json"
dla Content-Type
i setValue:requestDataLengthString
dla Content-Length
, zdarza się katastrofa nie. Jestem całkowicie zakłopotany, co się dzieje. O ile mogę powiedzieć, krach jest bezpośrednio związany z wysłaniem obiektu NSData
z moją prośbą. Kiedy psuje, górne elementy stosu wywołań do katastrofy (EXEC_BAD_ACCESS
) są następujące:
objc_msgSend
CFRelease
HTTPMessage::~HTTPMessage
_CFRelease
HTTPWriteFilter::~HTTPWriteFilter
Czy ktoś może pomyśleć o czymś, co mogę robić źle? Brakuje mi całkowicie tego, co robię źle, jak to naprawić, lub jak sobie z tym poradzić. Czy istnieje lepszy sposób na dane POST niż sposób, w jaki robię?
Wystarczy, aby spróbować czegoś: czy nadal się zawiesza, jeśli usuniesz linię [requestData release]? – squelart