Web サービスからデータをロードし、データをテーブル ビューに配置する iOS アプリケーションを作成しています。ユーザーは、セルをクリックして値を選択することにより、セル内のデータを更新できます。その値が選択された後、新しいデータを反映するようにテーブルを更新する必要があります。つまり、Web サービスからのデータの最初のダウンロードをやり直します。update メソッドの最後に、初期ロード メソッドを呼び出しますが、これは機能していないようです。元のデータがすべて再ロードされるだけです。これが私の更新方法の終わりです:
self.connectionInProgress = [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];
[self loadLines];
そしてロードラインメソッド:
- (void)loadLines
{
NSLog(@"going again?");
[Results removeAllObjects];
[Results release];
Results = nil;
Results = [[NSMutableArray alloc] init];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSString *jsonString = [self performFetchWithURL:lineURL];
if(jsonString == nil) {
[self showNetworkError];
return;
}
NSDictionary *dictionary = [self parseJSON:jsonString];
if(dictionary == nil) {
dispatch_async(dispatch_get_main_queue(), ^{
[self showNetworkError];
});
return;
}
[self parseDictionary:dictionary];
dispatch_async(dispatch_get_main_queue(), ^{
isLoading = NO;
[self.tableView reloadData];
});
});
}
parseDictionary と performFetchWithURL は、iOS 5 の非常に標準的な JSON インタラクションです...結果配列にデータを配置します。結果配列をクリアしてから再作成することで、正しいことをしていますか?
まったく新しいデータを取得するにはどうすればよいですか?