2011-07-07 215 views
1

我正在開發一個應用程序,它是一個客戶端並正在與Web服務進行通信。我正在檢查與Reachability課程的互聯網連接。如果它的可用性,我將bool設置爲YES,其默認爲NO。適用於Web服務應用程序的iOS應用程序體系結構

在我的應用程序代理的didFinishLaunchingWithOptions方法中,我抓取一個單例對象並添加它以觀察網絡狀態更改,以便它可以快速將bool轉換爲YES。

當我第一次viewDidLoad,我嘗試從getToken web服務,所以我檢查,如果internetConnection是avaliable,它總是返回NO,因爲我的目標得到一個通知後,我試圖讓一個令牌。我認爲它不是一個好主意,但是我該如何處理這種情況。預先感謝..

回答

1

在你的情況下,我用ASIHTTPRequest庫來檢查請求是否到達服務器或不。該ASIHTTPRequest提供了很多的方法,包括這一個:

-(void)requestFinished:(ASIHTTPRequest *)request 

要測試連接,你可以做這樣的事情:

-(void)requestFinished:(ASIHTTPRequest *)request{ 


if(request.responseStatusCode==200) 
    { 
      //successfull connection, do what you need 
     } 
else { 
     //failed request sent, display the correspondant error 

     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Your app name" 
                 message:@"Unexpected error" 
                 delegate:nil 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
    } 


} 
+0

嗯謝謝你,好像這個庫是使用可達性也和做我想嘗試的事情。 – Haqn

+0

@Haqn,Malloc,我應該使用什麼樣的設計模式來分離類,從業務邏輯中處理服務?鏈接到圖表將是完美的。 – surlac

+1

@surlac,對不起,它將成爲一個遲到的答案,我離開了一段時間。我使用了ASIHTTPRequest庫,並創建了一個單例來管理所有連接的東西。如果你使用這個庫,你不需要考慮爲網絡分離類(當然這取決於你的需求),只需爲你的數據創建模態類並通過你的viewControllers查看它們! :) – Haqn