我有一個服務器類具有NSURLConnection的委託方法。我有另一個名爲SendRequest的類,它將NSMutableURLRequest發送到服務器類。 在服務器類我有兩種方法稱爲NSURLConnection委託方法沒有被調用
- (void)executeAsync:(NSMutableURLRequest)urlRequest timeOutInterval:(int)timeOut
{
_urlConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];];
}
- (void)executeSync:(NSMutableURLRequest)urlRequest
{
NSData* respData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
}
一切工作正常,直到在這裏,我能夠調用上面從sendRequest將類,它調用委託方法executeAsync方法。
現在我在SendRequest類中添加了一個新方法,它將調用Server類中的executeRequest方法。
- (void)executeRequest:(NSMutableURLRequest)urlRequest
{
_urlConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];];
}
這次,我被困了。 executeRequest方法正在調用,但它在處理URL請求時未調用其委託方法。我在這裏被打了很多小時。
一切似乎都是正確的,我發送的urlRequest與我以前發送的方式相同。但我不知道爲什麼它不起作用。隨時發表評論,但請幫助我。我真的很擔心
編輯:
我需要發佈到服務器的請求,並得到迴應。如果我嘗試同步它工作正常,但它阻止主線程。這就是我正在尋求異步的原因。通過委託方法,我試圖獲取響應數據。
這裏您的代碼實際上並不表明你調用[_urlConnection開始。我假設你在某個地方這樣做? – SteveB
我編輯了我的問題。請檢查它 – Perseus
他正在使用startImmediately選項。 –