2009-09-17 61 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