0

サーバーからダウンロードしたファイルを取得して解析するクラスを作成しています。

クラス内に情報を解析するメソッドがあり、クラスの初期化時に情報がダウンロードされます。

問題は、情報自体がダウンロードされる前に、情報を解析するメソッドが呼び出される場合があることです。

FileParser *instance = [[FileParser alloc] initWithURL:@"somewhere"];
[instance parseData];

parseDataクラスが初期化された直後にメソッドが呼び出されるたびに、すべてのコンテンツが使用可能であるとは限らないため、メソッドは失敗します。

メインスレッドを中断せずに、parseDataメソッドの実行を続行する前に、すべての情報がダウンロードされるまで待つにはどうすればよいですか?

助けていただければ幸いです。

4

2 に答える 2

0

シンプル:この操作全体をバックグラウンドスレッド/キューで実行するかFileParser、より非同期の設計に向けてクラスをリファクタリングする必要があります。その設計は、委任やブロックなどのコールバックメカニズムを中心にしています。

于 2013-01-16T09:00:15.487 に答える
-1

デリゲートの使用を検討する必要があります。ダウンロードしたデータを処理するデリゲートをdowloadingクラスに渡します。こちらをご覧ください

于 2013-01-16T09:04:19.967 に答える