0

クラス A と B が必要です。サーバーとの接続方法を持つ私の B クラス。クラス AI からこのメソッドを呼び出しています。NSURLConnection.class A のデリゲートが実装されており、戻り値の型が BOOL であるチェック接続関数があります。次のように、このメソッドからクラス B の ping メソッドを呼び出しています: クラス A:

-(BOOL)checkConnectivity:(Server *)newServer
{
    [b ping];
    return FALSE;
}

クラス B:

-(void)ping
{


    NSURL *url=[[NSURL alloc]initWithString:@"my url"];
    request=[NSMutableURLRequest requestWithURL:url];
    connection=[[NSURLConnection alloc]initWithRequest:request delegate:self];

    if(connection)
    {
        webData=[NSMutableData data];
    }
}


-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *) data
{
    [webData appendData:data];
}


-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"Finished loading");   
}

URLに問題はありません。では、何が問題なのですか?デリゲート メソッドが呼び出されないのはなぜですか?

4

1 に答える 1

0

これを追加したことを確認してください:

@interface yourViewController : UIViewController <NSURLConnectionDelegate>

ping メソッドでこれを実行します。

 NSURLConnection * connection = [[NSURLConnection alloc] 
                            initWithRequest:request
                                   delegate:self startImmediately:NO];

[connection scheduleInRunLoop:[NSRunLoop mainRunLoop] 
                  forMode:NSDefaultRunLoopMode];
 [connection start]
于 2012-08-17T04:50:10.593 に答える