私のアプリは、何千もの製品データを表す非常に大きな JSON データのフィードを取得しています。データを解析して CoreData に保存した後 (すべてバックグラウンド スレッドで)、UITableView
解析後にデータを表示すると、メイン スレッドで行われるため、UI がブロックされます。しかし問題は、UI が数秒間ブロックされたままになり、ユーザー フレンドリーではないことです。では、UI をブロックせずにデータのリロードを処理するにはどうすればよいでしょうか?
//...
//After parsing data, reload UITableView
[self.tView reloadData];
編集:
UITableView
データを解析し、データをリロードし、オブジェクトがすべてのデータを表示した後、私の問題を再度説明することがあります。その後、アプリを再び使用できるようになるまで、数秒間 UI がブロックされます。
ここに私の関連コードがあります:
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON){
//Parse data
[self.tView reloadData];//Display data
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
//Save data
}];
}failure:^(NSURLRequest *request, NSHTTPURLResponse *response,NSError *error, id JSON){
//
}];
[operation start];
}