【问题标题】:Can't display data from a Webservice into UITableView (ASIHTTPRequest)无法将来自 Web 服务的数据显示到 UITableView (ASIHTTPRequest)
【发布时间】:2012-04-12 05:00:05
【问题描述】:

仅供参考,我是 Xcode Dev 的新手。

我在 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 数据,它工作正常,单元格已填满。

感谢您的帮助

【问题讨论】:

    标签: ios xcode json uitableview asihttprequest


    【解决方案1】:

    我做过类似的程序,可以在here找到

    唯一的问题是我只获得第一页的记录。但我认为这个例子将有助于解决你的问题。

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 2012-08-24
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多