Iphone 未在Three20 url请求模型上调用委托函数

Iphone 未在Three20 url请求模型上调用委托函数,iphone,objective-c,three20,Iphone,Objective C,Three20,在我的一个项目中,我希望通过将TTURLXMLResponse传递给请求,使用TTURLRequestModel以XML格式填充响应数据。但是,从未调用委托方法。有人能告诉我这两个文件中缺少了什么吗?我需要初始化库的其他元素吗 Three20Parser.h @interface Three20Parser : TTURLRequestModel{ } - (void) download; @end Three20Parser.m #import "Three20Parser.h" #i

在我的一个项目中,我希望通过将TTURLXMLResponse传递给请求,使用TTURLRequestModel以XML格式填充响应数据。但是,从未调用委托方法。有人能告诉我这两个文件中缺少了什么吗?我需要初始化库的其他元素吗

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);
}

也许请求失败了?您只实现了协议的success方法—是否调用了request:didFailLoadWithError:get

我只是为了调试而实现,看看发生了什么。然后,当它工作时,移除不需要的ONL


然而,你应该经常检查错误-你可能不得不告诉用户苹果允许应用进入应用商店失败了!即使你不必告诉用户,你也应该做点什么

嗨,dean,谢谢你的回答,我已经尝试实现了所有用于测试的委托方法,但是没有一个被调用。即使使用http或https,也没有区别。它只是静默的。如果尝试将“”作为URL,会发生什么情况?这肯定会给你一个回应!哦,谢谢,迪恩,这是我的错。请求确实收到错误,因此它改为请求委托-(void)request:(TTURLRequest*)request didFailLoadWithError:(NSError*)错误。我一直认为请求url是正确的,最近服务器发生了变化。注意:一定要实现所有的错误处理方法,如果重写超级委托方法,那么应该使用[super didDOsth]方法调用父级。