0

私のプロジェクトの 1 つで、TTURLXMLResponse をリクエストに渡すことによって、TTURLRequestModel を使用して XML 形式でレスポンス データを入力したいと考えています。ただし、デリゲート メソッドは呼び出されません。これらの 2 つのファイルで何が欠けているか教えてもらえますか? ライブラリの他の要素を初期化する必要がありますか?

Three20Parser.h

@interface Three20Parser : TTURLRequestModel{

}

- (void) download;

@end

Three20Parser.m

#import "Three20Parser.h"
#import "extThree20XML/extThree20XML.h"

@implementation Three20Parser

- (id)init{
    self = [super init];
    return self;
}

- (void) download{
    NSString *requestURL = @"http://server.local/service.asmx";
    NSLog(@"requestURL: %@", requestURL);

    TTURLRequest *request = [TTURLRequest requestWithURL:requestURL delegate:self];
    request.cacheExpirationAge = TT_CACHE_EXPIRATION_AGE_NEVER;
    request.cachePolicy = TTURLRequestCachePolicyNone;

    TTURLXMLResponse *response = [[TTURLXMLResponse alloc] init];
    request.response = response;
    TT_RELEASE_SAFELY(response);

    [request send];
}

     /*
 the requestDidFinishLoad is not called.
 */

- (void)requestDidFinishLoad:(TTURLRequest *)request{
    //TTURLXMLResponse *response = request.response;
    //NSLog(@"response: %@", [[NSString alloc] initWithData:response.data encoding:NSUTF8StringEncoding]);

    NSLog(@"REQUEST DID FINISH", nil);
}
4

1 に答える 1

1

おそらくリクエストは失敗しましたか?プロトコルの成功メソッドのみを実装しています-代わりに request:didFailLoadWithError: が呼び出されますか?

何が起こっているのかを確認するためだけに、デバッグ用に可能なすべてのメソッドを実装します。次に、機能するようになったら、不要な onls を削除します。

ただし、常にエラーをチェックする必要があります。Apple がアプリをアプリ ストアに許可するのに失敗したことをユーザーに伝えなければならない場合があります。ユーザーに伝える必要がない場合でも、おそらく何かを行う必要があります。

于 2010-05-27T09:35:28.317 に答える