我正在创建一个检索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语句不会通过那段时间。他们下次拉它会实际加载表。
这一点的主要观点是,这是否是实现数据检索失败的最佳方法。