我目前正在做一個異步請求時,有一個時間執行20秒。NSURLConnection的和的NSTimer問題
我遇到的問題是NSURLconnection在主線程上運行,因此,如果我運行NSTIMER來計算已經通過的秒數,它將永遠不會觸發選擇器,因爲NSURLconnection阻塞了主線程。我也許可以在不同的線程運行NSURLConnection的,因爲它是線程安全的,但我有奇怪的問題,我代表沒有被調用等..任何幫助表示讚賞。
下面是我的sniplet:
NSURL *requestURL = [NSURL URLWithString:SERVER];
NSMutableURLRequest *req = [[[NSMutableURLRequest alloc] initWithURL:requestURL] autorelease];
theConnection = [[NSURLConnection alloc]initWithRequest:req delegate:self];
if (!timeoutTimer) {
NSLog(@"Create timer");
timeoutTimer = [NSTimer scheduledTimerWithTimeInterval:TIMEOUT target:self selector:@selector(cancelURLConnection) userInfo:nil repeats:YES];
}
感謝。你其實是對的。異步請求不應阻塞主線程。嗯,我基本上創建一個連接,然後創建一個計時器。 – user281300
您是否考慮過使用'NSMutableURLRequest'的'setTimeoutInterval:'方法,而不是創建自己的計時器? – omz
你不行。它只是超時4-5分鐘後 – user281300