Iphone 未在Three20 url请求模型上调用委托函数
在我的一个项目中,我希望通过将TTURLXMLResponse传递给请求,使用TTURLRequestModel以XML格式填充响应数据。但是,从未调用委托方法。有人能告诉我这两个文件中缺少了什么吗?我需要初始化库的其他元素吗 Three20Parser.hIphone 未在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
@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]方法调用父级。