Ios UITableView数据需求
您好,我正在尝试按需加载数据。 在第一次加载数据之后,我调用以下方法Ios UITableView数据需求,ios,uitableview,Ios,Uitableview,您好,我正在尝试按需加载数据。 在第一次加载数据之后,我调用以下方法 -(void)carregaDados2 { [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; NSURL *url2 = [[NSURL alloc] initWithString:[@"http://localhost:3000/json.aspx?ind=12&tot=12" stringByAdd
-(void)carregaDados2
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURL *url2 = [[NSURL alloc] initWithString:[@"http://localhost:3000/json.aspx?ind=12&tot=12" stringByAddingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:url2];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSError *jsonParsingError = nil;
NSMutableData *data2;
data2 = [[NSMutableData alloc] init];
[data2 appendData:response];
NSMutableData *dt = [[NSMutableData alloc] init];
[dt appendData:data];
[dt appendData:data2];
news = [NSJSONSerialization JSONObjectWithData:dt options:nil error:nil];
[tableViewjson reloadData];
NSLog(@"Erro: %@", jsonParsingError);
}
然而,我的tableview是空白的
我做错了什么
我真的不知道还能做什么 现在我更改了代码,无法将第二个索引NSMutableArray放在UITableView中
-(void)carregaDados2
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURL *url2 = [[NSURL alloc] initWithString:[@"http://localhost:3000/json.aspx?ind=12&tot=12" stringByAddingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:url2];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSError *jsonParsingError = nil;
NSMutableData *myData = [[NSMutableData alloc]init];
[myData appendData:response];
NSMutableArray *news2;
news2 = [NSJSONSerialization JSONObjectWithData:myData options:nil error:&jsonParsingError];
NSLog(@"LOG: %@", news2);
}
从外观上看,您正在将两个JSON响应缓冲区组合在一起,并试图将它们解析为单个JSON消息
[dt appendData:data];
[dt appendData:data2];
news = [NSJSONSerialization JSONObjectWithData:dt options:nil error:nil];
这是行不通的
例如,如果data
是[{“x”=“a”,“y”=“b”}]
并且data2
是[{“x”=“c”,“y”=“d”}]
那么dt
的值将是[{“x”=“a”,“y”=“b”}][{“x”=“c”,“y”=“d”}]
,这是一条无效的JSON消息
[dt appendData:data];
[dt appendData:data2];
news = [NSJSONSerialization JSONObjectWithData:dt options:nil error:nil];
我建议将JSON消息分别解析为NSArray,并结合两个数组
组合两个阵列是基本的NSArray/NSMutableArray操作
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSError *error = nil;
NSArray *updatedNews = [NSJSONSerialization JSONObjectWithData:response options:nil error:&error];
// If news is of type NSArray…
news = [news arrayByAddingObjectsFromArray:updatedNews];
// If news is of type NSMutableArray…
[news addObjectsFromArray:updatedNews];
[tableViewjson reloadData];
您可以发布tableView的datasource和delegate方法吗?您是否为tableView的datasource属性分配了任何内容?另一件事是发送同步请求不是一个好主意。你有没有挂接/setDelegate/print你的数据等等…我真的不知道还能做什么。现在我更改了代码,无法将第二个索引NSMutableArray放在UITableView中。@leedream我更新了答案以演示如何组合数组。