1

これは私のコードです

theDownloadConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

そして、これらのNSURLConnectionデリゲートメソッドを呼び出しています

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;

- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

しかし、それは呼び出していません

- (void)connection:(NSURLConnection *)connection   didSendBodyData:(NSInteger)bytesWritten
                                                 totalBytesWritten:(NSInteger)totalBytesWritten
                                         totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite;

これを行うと、NSURLConnectionデリゲート呼び出しのこのメソッドが呼び出されます

[NSURLConnection connectionWithRequest:request delegate:self];

なぜこれが起こっているのか分かりませんか?

4

2 に答える 2

2

didSendBodyDataは、POSTリクエストのように、リクエストにメッセージデータを含む本文がある場合にのみ呼び出されます。ほとんどの場合、GETを実行しています。

アップルのドキュメントから:

connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:リクエストの本文(メッセージデータ)が送信されるときに送信されます(http POSTリクエストなど)。

于 2012-11-21T12:03:31.350 に答える
-1

これは、NSURLConnectionDataDelegateで定義されており、 NSURLConnection デリゲートを設定しているためです。

于 2012-11-21T12:14:34.943 に答える