【问题标题】:Implementing Feeds using Three20 Drag to Refresh; Does not update使用 Three20 Drag to Refresh 实现 Feed;不更新
【发布时间】:2011-07-25 06:38:54
【问题描述】:

我正在实施一个 Feed 项目,基本上使用 Three20 Twitter 示例作为我的参考,但使用我自己网站的 api 来获取 XML 响应..

我已经有允许自己发布、删除提要的功能,但是当我拖动刷新 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 框架处理

【问题讨论】:

  • 什么时候重新加载 uitableview?
  • 我想在拖动刷新后重新加载它,但我得到的 XML 响应与我第一次得到的响应相同
  • 是的,但是您的数据源是什么?收到回复后你会更新吗?
  • 我正在使用 TTListDataSource,是的,我也在更新它
  • 贴出更新数据源的代码和调用更新表视图的地方。

标签: iphone three20


【解决方案1】:

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

尝试使用标准缓存:

request.cachePolicy = cachePolicy;
request.cacheExpirationAge = TT_DEFAULT_CACHE_EXPIRATION_AGE;

【讨论】:

  • 谢谢大佬,这里真的没太注意,谢谢谢谢
猜你喜欢
  • 2014-05-11
  • 2021-03-17
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
相关资源
最近更新 更多