我正在制作一个检索 JSON 数据并将其放入 UITableView 的应用程序。我只是想知道处理加载数据失败、没有互联网连接等的最佳实践是什么。我还在桌子上实现了拉动刷新,所以我希望它通过它重新加载。截至目前,我的一切工作正常,但这是我第一次这样做,所以我只是想看看我是否遗漏了什么。
这是我的设置方式:
// Assume there are method's that retrieve the data
- (void)viewDidLoad
{
[self loadData];
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.tintColor = [UIColor darkGrayColor];
[refreshControl addTarget:self action:@selector(reloadTable) forControlEvents:UIControlEventAllEvents];
self.refreshControl = refreshControl;
}
- (void)reloadTable
{
[self loadData];
if (self.jsonCodeData) {
[self.tableView reloadData];
[self.refreshControl endRefreshing];
} else {
[self.refreshControl endRefreshing];
}
}
所以基本上我在视图加载时加载数据并创建/初始化 UIRefreshControl。reloadTable 方法是我对这个问题的回答。这是正确的还是有更好的方法来做到这一点?另外,我希望在没有加载任何内容时有一个填充“无数据:拉到刷新”类型的图像。当我使用 UITableViewController 时,最好的方法是什么?我刚刚添加了另一个我标记为需要刷新的原型单元格。
我现在遇到的一个问题是,如果用户没有互联网,我必须拉刷新两次,然后碰巧得到它。他们必须拉一次才能从本质上获取数据,但是 if 语句不会通过那个时间。下次他们拉它时,它实际上会加载桌子。
这样做的要点只是看看这是否是实现数据检索失败的最佳方法。