gpt4 book ai didi

ios - 从 api 检索计数后,在 tableview 委托(delegate)中更新我的 NSMutablearray 计数的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-28 22:18:48 25 4
gpt4 key购买 nike

基本上,我需要我的 UITableView 从 API 检索正确数量的结果数组。我通过 didGetResults 方法从 api 检索结果数组,但是即使 didGetResults 中的数组计数发生变化,tableview 委托(delegate)的数组计数仍然保持为零。如何在获得结果数组后立即更新 tableview 委托(delegate)中的结果计数?我将发布我的代码,让您更好地了解我正在尝试做什么。

ViewController.h

   @interface ViewController : UIViewController <Appdelegate>{
}
@property (nonatomic, retain) NSMutableArray *resultArray;
@property (nonatomic, retain) IBOutlet UITableView *tableView;

ViewController.m

   -(int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.resultArray.count;
}

-(void)didGetResult:(NSMutableArray*)jsonArray{
[self.tableView reloadData];
self.resultArray = jsonArray;
NSLog(@"resultArrayCount %@",self.resultArray.count);
}

didGetResults 中的 resultArray 计数发生变化,但它不会更新 numberOfRows TableView 委托(delegate)中的 resultArray 计数。编辑:此外,didGetResult 是一个委托(delegate),jsonArray 是它检索的结果数量。

最佳答案

你做错了。先更新数据源,再重新加载表格 View :

self.resultArray = jsonArray;
[self.tableView reloadData];

如果 didGetResult: 在后台线程上被调用,你必须调度这些对主线程的调用,因为 UI 更新只能在主线程上完成:

dispatch_async(dispatch_get_main_queue(), ^{
self.resultArray = jsonArray;
[self.tableView reloadData];
});

关于ios - 从 api 检索计数后,在 tableview 委托(delegate)中更新我的 NSMutablearray 计数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20960039/

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