0

NSURLConnectioniPhone用のobjective-cについてお聞きしたいのですが。

データ(YouTubeビデオに関する)を受信するために1つのWebサービスに接続する必要がある1つのアプリがあり、次に接続する必要があるすべてのものがあります(WebのHello_Soapサンプルコードと同様)。

しかし今、私の問題は、NSObjectという名前のクラス(から継承)を作成し、Connectionメソッド、、、およびを実装した didReceiveResponseことです。また、方法:didReceiveDatadidFailWithErrorconnectionDidFinishLoading

-(void)Connect:(NSString *) soapMessage{
    NSLog(soapMessage);

    NSURL *url = [NSURL URLWithString:@"http://....."];
    NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
    NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];


    [theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
    [theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
    [theRequest setHTTPMethod:@"POST"];
    [theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];

    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

    if( theConnection )
    {
        webData = [[NSMutableData data] retain];
    }
    else
    {
        NSLog(@"theConnection is NULL");
    }
}

しかし、AppDelegateから1つのConnectionオブジェクトを作成する場合:

Connection * connect = [[Connection alloc] Init:num]; //It's only one param to test.
[connect Connect:method.soapMessage];

そして、私はこのメソッドを呼び出します。これが終了すると、、、、またはの呼び出しは続行さdidReceiveResponsedidReceiveDataませdidFailWithErrorconnectionDidFinishLoading。私はこれをやろうとしていますが、今のところできません。

私がやりたいのは、データを受信するたびにこのクラスを「接続」と呼べるようにすることです(その後、解析してUITableViewsに表示します)。

ありがとうございました。

4

1 に答える 1

0

私が探求する出発点は、クラスに「Connect」という名前を付けないことです。Objective-C には名前空間がなく、「Connect」などの一般的な名前を使用すると、同じ名前の他のクラスが問題を引き起こしている可能性があります。

慣例では、プロジェクトまたは会社に関連するいくつかの文字を先頭に追加します。たとえば、プロジェクトの名前が Amazing Thing の場合、代わりにクラス「ATConnector」と名前を付けることができます。.h ファイル内のクラス名を強調表示し、[リファクタリング] メニュー コマンドを使用して簡単に変更でき、他の参照も修正できます。

また、呼び出し後に Connect クラスまたは NSURLconnection のいずれかを解放した場合、デリゲート メソッドが呼び出されないという効果がありますが、存在するコードから判断するのは困難です。

于 2009-07-10T08:15:54.060 に答える