1

私はこの簡単なシナリオを持っています:

  • main.m (これは私のメイン クラスです)
  • myClass.m (追加クラス)

私の計画では、このようなことが起こるはずです

(MAIN.m 内)

myClass *foo = [[myClass alloc] init];
NSArray *array = [foo returnAnArray];

myClassが行うことは、新しい NSURLConnection を開き、いくつかのデータを取得し、準備ができたらそれを解析して配列を返すことです。

解析されたデータを含む配列を返すには、これを簡単に書きました

(NSArray *) returnArray:(NSString *)dataDownloadedFromWeb

データのダウンロードが実際にいつ終了し、いつ解析を開始するかを知るために、私は使用しています

- (void) connectionDidFinishDownloading: (NSURLConnection *connection)

しかし、connectionDidFinishLoading が VOID の場合、returnArrayをどこでどのように呼び出すことができますか? :(

これが理にかなっていることを願っています...私は本当に立ち往生していて、解決策を見つけることができないようです. NSNotification を試してみましたが、どちらもうまくいかないようでした。

みんな応援ありがとう!エンリコ

4

2 に答える 2

1

おそらくあなたが意味するの - (void)connectionDidFinishLoading:(NSURLConnection *)connectionですか?

とにかく、完了するまで待つ必要はありません。準備ができたらデータを解析します。 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

  • connectionDidFinishLoading: は、これ以上データが来ないことを知らせています。
于 2009-10-06T11:08:41.523 に答える
0

自分で connectionDidFinishDownloading を実装する必要があります。作成時に NSURLConnection に渡すデリゲート オブジェクトを作成する必要があります。デリゲート オブジェクトは、connectionDidFinishDownloading を実装する必要があります。

NSURLConnection は、適切な時間にデリゲート オブジェクトで connectionDidFinishDownloading を呼び出します。

詳しい情報はこちら

于 2009-10-06T11:03:06.917 に答える