2011-07-25 42 views
0

我基本上实现使用Three20 Twitter的样品作为我的参考饲料项目,但使用自己的网站的API来获取XML响应..使用Three20实现馈送20拖动到刷新;不更新

我已经功能,让自己发帖,删除饲料,但是当我拖动刷新TTTableViewController时,它不会更新表中的数据,它所做的是回到我第一次加载表的状态。

来自第一个XML响应的数据是我总是会得到的。

- (void)load:(TTURLRequestCachePolicy)cachePolicy more:(BOOL)more { 
if (!self.isLoading && TTIsStringWithAnyText(_apiKey) && TTIsStringWithAnyText(_sessionKey)) { 
    if(more) { 
     _pageNumber++; 
    } 
    else { 
     _pageNumber = 1; 
     _finished = NO; 
     [_feeds removeAllObjects]; 
    } 

    NSString* url = @"api.mySiteHereWithParameters.com" 
    TTURLRequest* request = [TTURLRequest requestWithURL: url delegate: self]; 

    request.cachePolicy = cachePolicy | TTURLRequestCachePolicyEtag; 
    request.cacheExpirationAge = TT_CACHE_EXPIRATION_AGE_NEVER; 

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

    [request send]; 
} 

}

基本上当我拖动和刷新,这就是所谓的并退回到TTListDatasource和更新表视图,一切与three20框架处理

+0

当你重装的UITableView? –

+0

我想在拖动刷新后重新加载它,但是我得到的XML响应与我第一次得到的相同 – bluezald

+0

是的,但是你的数据源是什么?你是否在获得回应时更新它? –

回答

1

这可能是一个高速缓存问题。我看到你正在使用etags来缓存。你的服务器支持吗?它必须在服务器端启用和配置。

尝试使用标准缓存:

request.cachePolicy = cachePolicy; 
request.cacheExpirationAge = TT_DEFAULT_CACHE_EXPIRATION_AGE; 
+0

谢谢你,我真的没有在这里付出很多的关注,谢谢你谢谢 – bluezald