リクエストとデータ処理(解析)を行う独自のクラスがあります。このクラスは、さまざまなビュー コントローラーから使用する必要があります。このクラスでは、次を実装しました。
- (void)sendRequest:(NSString *)url;
- (void)requestFinished:(ASIHTTPRequest *)request;
- (void)requestFailed:(ASIHTTPRequest *)request;
- (id)parse:(NSString *)aString;
result というプロパティを作成しました。リクエストが到着すると、requestFinished が呼び出されます。requestFinished では、結果が result に保存されます。sendRequest で値を返すと結果が返ってくると思いました。しかし、前に述べたように、requestFinished は結果を取得するため、sendRequest は常に nil 変数を返します。その時点ではリクエストは完了していないためです。
結果を返すにはどうすればよいですか? このクラスをさまざまなビュー コントローラーから使用できるようにしたいと考えています。したがって、ビュー コントローラーでメソッドを作成して結果を渡す最初の考えは機能しません。
ビューコントローラーをデリゲートとして使用することについて、このスレッドPass Result of ASIHTTPRequest "requestFinished" Back to Originating Methodを読みました。しかし、ビューコントローラーに requestFinished と requestFailed を実装する必要があると思います。異なるView Controllerに重複するコードを持たないという考えはなくなります...
誰か助けてくれませんか?