2012-03-28 68 views
1

僅供參考,我是Xcode Dev中的新手。無法顯示Web服務中的數據到UITableView(ASIHTTPRequest)

我在UITableView中顯示Web服務中的數據時遇到了問題。

我使用ASIHttpRequest構建HTTP請求以從Web服務器獲取JSON數據。我的要求是構建這樣的(用JSON參數,並在viewDidLoad中方法來實現):

NSString *jsonString = @"login"; 


NSString *URL = @"MyURL"; 

NSURL *filactuURL = [NSURL URLWithString:URL]; 


ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:filactuURL]; 
[request setRequestMethod:@"POST"]; 
[request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"]; 
[request addRequestHeader:@"Content-Type" value:@"application/json"]; 
[request appendPostData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]]; 



[request setDelegate:self]; 


[request startAsynchronous]; 

然後,我得到這個代碼的響應:

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

    NSString *theJSON = [request responseString]; 

    SBJsonParser *parser = [[SBJsonParser alloc] init]; 

    id message = [parser objectWithString:theJSON error:nil]; 

    if ([message isKindOfClass:[NSDictionary class]]) 
    { 

     //Not used 

    } 
    else if ([message isKindOfClass:[NSArray class]]) 
    { 
     for(int i = 0; i < [message count]; i++) 
     { 
      for (NSDictionary *dic in message) { 

       Message *messsage = [[Message alloc] init]; 

       messsage.expediteur = [dic objectForKey:@"expediteur"]; 

       messsage.titre = [dic objectForKey:@"titre"] ; 

       messsage.date = [dic objectForKey:@"date"] ; 

       messsage.contenu = [dic objectForKey:@"contenu"] ; 

       [tableau addObject:messsage]; 

       [messsage release]; 

      } 

     } 
     [theJSON release]; 
    } 
} 

服務器送我JSON數據,我使用SBJSon解析它並填充Message對象。該對象將用於填充TableView的單元格。 得到迴應後,問題是:單元格是空的,但應用程序不會崩潰,我沒有錯誤。

我試過用硬存儲的JSON數據,它工作正常,單元格被填滿。

感謝您的幫助

回答

-1

我也做過類似的節目類型可以發現here

唯一的問題是,我得到的只有第一頁的記錄。但我認爲這個例子將有助於解決您的問題。

相關問題