1

didReceiveData:, didReceiveResponse:バージョン4.3でNSURLConnectionDataDelegateで利用できるstackOverFlowなどを確認しました。バージョン 2.3 から 4.3 までは、NSURLConnectionDelegate で利用できます。

これらを見てください:

http://stackoverflow.com:(10937215)connection-didreceivedata-is-not-called

http://stackoverflow.com:(7862316) ios5 nsurlconnection メソッドが廃止されました

SDK のバージョンを確認することで、特定のクラスを継承できると思いますが、テストしていません。しかし、達成できると思います。

しかし問題は、私が iOS 6.0 と 3G ネットワークで実行していて、常にタイムアウト エラーで失敗することです。WIFI では、didReceiveData:NSURLConnectionDelegate を使用しても呼び出されます。少し奇妙に感じました。

NSURLConnectionDelegate を拡張する私のクラスでは、これらが注目すべきメソッドです。

-(void)connection:(NSURLConnection *)theConnection didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"Private didReceiveResponse - %d", [response statusCode]);

    if([response statusCode] == 200)
        connectionstatus = YES;
}

- (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data
{
    self.connectionstatus = YES;

}

- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection 
{
    NSLog(@"Private connectionDidFinishLoading");

    self.connectionstatus = NO;
    [self reinitConnection];
}

-(void)connection:(NSURLConnection *)theConnection didFailWithError:(NSError *)error
{
    self.connectionstatus = NO;
    self.connection= nil;
}


- (void) reinitConnection
{
    self.connectionstatus = YES;
    connectionCount++;
    NSString* urlS = @“VALID url”; //Such as http://google.com
    NSURL *url = [NSURL URLWithString:urlS];
    self.req = [[NSMutableURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
    NSString *appstring =[httpreq appendMyParamsPost:req];
    [req setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@?%@",[url absoluteString],appstring]]];

    NSString* authValue = @“SomeValue”,
    [req addValue:@"application/vnd.gupshup.privatechat-v1+json" forHTTPHeaderField:@"Accept"];
    [req setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
    [req addValue:authValue forHTTPHeaderField:@"Authorization"];
    [req setHTTPMethod:@"GET"];

    [self.connection cancel];
    self.connection = nil;
    self.connection = [[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES];
}

問題はありますか?SDK レベルでメソッド シャッフルの問題があるにもかかわらず、特に 3G で発生するのはなぜですか?WIFI でも発生する必要があります。

前もって感謝します。ヴェンカタラオ

4

0 に答える 0