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 でも発生する必要があります。
前もって感謝します。ヴェンカタラオ