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 ステートメントはその時間を通過しません。次回プルすると、実際にテーブルがロードされます。
これの主なポイントは、これがデータ取得の失敗を実装する最良の方法であるかどうかを確認することです。