gpt4 book ai didi

ios - UITableView 在从 connectionDidFinishLoading 获取数据之前出现

转载 作者:可可西里 更新时间:2023-11-01 04:44:44 27 4
gpt4 key购买 nike

在从我的网络服务获取数据之前,我的表正在加载。

当我调试它时,我可以看到我的 NSMutableArray 有 123 个对象,但它没有反射(reflect)在表中。

这是我的connectionDidFinishLoading 方法:

-(void)connectionDidFinishLoading:(NSURLConnection *)conn{
myData = [[NSString alloc] initWithData:xData encoding:NSUTF8StringEncoding];
SBJsonParser *jParser = [SBJsonParser new];
NSError *error = nil;
NSArray *jsonObjects = [jParser objectWithString:myData error:&error];
NSMutableArray *books = [[NSMutableArray alloc] init];

for(NSDictionary *dict in jsonObjects)
{
Book *b = [Book new];
b.bookName =[dict objectForKey:@"name"];
b.published = [dict objectForKey:@"published"];
[books addObject:b];

}
self.bookArray = books;
[self.tableView reloadData];
NSLog(@"myData = %@",myData);
}

如果我对此进行调试,我将获取我的 jsonObjects 并填充我的集合。但我注意到我的 table 还是空的。

澄清一下这是我的 tableView 方法:

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath{
...
Book *b = (Book *)[self.bookArray objectAtIndex:[indexPath row]];
cell.textLabel.text = b.bookName;
....

任何人都可以帮我解决我所缺少的吗?

最佳答案

您需要考虑 numberOfRowsInSection(和 numberOfSections)在没有数据要显示的情况下和有数据要显示的情况下返回的内容。每次调用reloadData,tableView都会调用这两个方法来获取数据源的最新信息。如果您的数据尚未加载,则这些委托(delegate)方法应报告适当的值。如果没有加载数据,您可以测试 nil 值或做一些类似的测试,然后返回适当的值。加载数据后,委托(delegate)方法应根据数据源中内容的大小返回值。

如果您向我们展示这些方法的代码,有人可以评论这是否是您的问题。

关于ios - UITableView 在从 connectionDidFinishLoading 获取数据之前出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8591053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com