メインのView Controllerから呼び出され、jsonデータのダウンロードを開始し、それを配列(インスタンス変数)に非同期的に解析する別のクラスがあります
このデータのダウンロードが完全に完了したら、View Controller に通知してこの配列を返す方法はありますか?
データがダウンロードされるのを待つために、viewdidload メソッドでいくつかのループとスリープ タイマーを使用しようとしましたが、これは役に立ちませんでした
メインのView Controllerから呼び出され、jsonデータのダウンロードを開始し、それを配列(インスタンス変数)に非同期的に解析する別のクラスがあります
このデータのダウンロードが完全に完了したら、View Controller に通知してこの配列を返す方法はありますか?
データがダウンロードされるのを待つために、viewdidload メソッドでいくつかのループとスリープ タイマーを使用しようとしましたが、これは役に立ちませんでした
この目的にはデリゲートを使用する必要があります。デリゲートの詳細については、Google で検索してください。ここに簡単なチュートリアルがあります。
基本的な考え方は、メイン ビュー コントローラーのハンドルをサブクラスに渡すことです。サブクラスは、json の処理後にメインビュー コントローラーに通知し、デリゲートを使用して結果をメインビュー コントローラーに送り返します。
お役に立てれば。
デリゲートはこの目的に役立つと思いますが、より良いオプションは、このコードをより適切に記述するためのブロック API の使用です。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{
// data downloading
dispatch_async(dispatch_get_main_queue(), ^{
// downloading data use
});
});
これがあなたにとって完全な助けになることを願っています。