gpt4 book ai didi

ios - UITableview 委托(delegate)和数据源调用了两次

转载 作者:行者123 更新时间:2023-12-01 17:51:38 27 4
gpt4 key购买 nike

我与 tableview 数据源和委托(delegate)方法作斗争。如果用户导航到该 TableView Controller ,我有一个 TableView ,我正在调用 Web 服务方法,该方法是在请求成功完成重新加载 TableView 部分但 tableView:cellForRowAtIndexPath:indexPath 调用两次后基于 block 的服务。这是我的代码。

viewDidLoad

[[NetworkManager sharedInstance].webService getValues:self.currentId completion:^(NSArray *result, BOOL handleError, NSError *error) {

self.data = result[0];

dispatch_async(dispatch_get_main_queue(), ^{

[self.tableView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 4)] withRowAnimation:UITableViewRowAnimationAutomatic];
});

}

但 cellForRowAtIndexPath self.data 值第一次为空。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%@", self.data); // first time it print null
}

那么对此有什么想法吗?非常感谢!

最佳答案

您是否在 viewDidLoad 中初始化了数据数组?如果你不这样做,它将返回 null。

如果你想避免两次调用 tableview 试试这个:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

if(!data)
return 0;

return yourNumberOfSections;
}

关于ios - UITableview 委托(delegate)和数据源调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440862/

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