【发布时间】: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