2012-05-10 83 views
0

我正在寫基於位置的應用程序,通過使用NSURLConnection爲當前/其他地方通過API獲取天氣信息。第一次發送請求時它的工作成功。但下一次,我想引用相同的地方信息不工作,而NSURLConnection沒有調用任何委託方法。NSURLConnection不啓動

這是我的代碼:

NSString *strs=[@"http://www.earthtools.org/timezone-1.1/" stringByAppendingString:[NSString stringWithFormat:@"%@/%@",place.latitude,place.longitude]]; 

NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:strs]]; 

self.reqTimeZone=[NSURLConnection connectionWithRequest:request delegate:self]; 
[self.reqTimeZone start]; 
+0

此代碼塊是否在主線程或後臺線程上執行?如果您在後臺線程上運行,則需要將連接連接到線程的runloop。 – 0x8badf00d

回答

6

我假定你的意思NSURLConnectionNSConnection不存在)。 NSURLConnection只能使用一次。見Reusing an instance of NSURLConnection

NSURLConnection的另一個問題是它必須在帶有runloop的線程上運行。主線程自動具有運行循環,但在GCD和線程上調用的方法需要明確創建runloop。在實踐中,您可能不需要在後臺線程上運行NSURLConnection。下載操作不會阻塞主線程。如果您決定在運行循環中運行NSURLConnection,最簡單的方法是創建一個NSOperation子類並在-main內創建運行循環。

+0

我發送NSURLConnection請求它正在工作fine.now我想刷新信息,即重新發送NSURLConnection.Refresh工作時,從IBAction button.But調用不工作從NSThread方法。如何解決這個問題。謝謝重播 – Madhubalan