2009-09-17 59 views
3

我试图在我的应用中实现一个简单的TTURLRequest。我对Three20框架相当陌生。我主要想要TTURLRequestTTImageView这个真棒缓存的东西。TTURLResponse为零

我在委托下面的代码:

- (void)requestDidFinishLoad:(TTURLRequest*)request { 
    TTURLDataResponse *response = request.response; 
    // Stuff to process response.data 
} 

response始终是零。我无法弄清楚我做错了什么。我查看了应用程序支持目录,它使用正确的数据创建了缓存文件,所以我知道它正在得到响应。我究竟做错了什么?

回答

6

调试的代码 - 你实际上必须创建一个响应对象,并在提交申请前添加到请求:

NSString *url = @"http://twitter.com/statuses/user_timeline/samsoffes.json?count=1"; 
TTURLRequest *theRequest = [[TTURLRequest alloc] initWithURL:url delegate:self]; 
theRequest.response = [[[TTURLDataResponse alloc] init] autorelease]; 
[theRequest send]; 

人们可能会认为该请求将负责创建的反应,但Three20的东西没有。

+0

自从Joe发布Three20以来,这一直有点违反直觉。我相信原因是这会让请求者负责决定他们是否期望二进制TTURLDataResponse或TTURLImageResponse。 我认为提出一个额外的便捷初始值设定方法是有意义的,它有一个额外的参数来选择需要的响应类型,并且通过TTURLRequest自己的init代码来实例化。 – 2009-10-06 03:51:00

0

revetkn.com的Mark Allen发布了TTURLRequest的数据源实现。

他还发布了一个示例项目,他假设您在../(相对于您的项目)中安装了Three20。它在这里:http://revetkn.com/?p=72

+0

我试着用他的例子做同样的事情,但它仍然不起作用。这里是一个示例项目: http://dl.getdropbox.com/u/67797/Untitled.zip 我在做什么错? – 2009-09-18 03:01:27