Реализация каналов с использованием Three20 Drag для обновления; Не обновляет - PullRequest
0 голосов
/ 25 июля 2011

Я реализую проект ленты новостей, в основном используя образец Твиттера Three20 в качестве справочного материала, но использую 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 и обновляет представление таблицы, все остальное обрабатываетсяс тремя20 рамками

1 Ответ

1 голос
/ 25 июля 2011

Вероятно, это проблема с кешем. Я вижу, что вы используете etags для кеширования. Ваш сервер поддерживает это? Он должен быть включен и настроен на стороне сервера.

попробуйте использовать стандартное кэширование:

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