PFQuery的hasCachedResults总是返回NO,即使它最终使用缓存结果

时间:2015-12-03 20:07:08

标签: objective-c caching parse-platform pfquery

我使用查询来填充单元格上的值并对其进行缓存,以避免在重用单元格时进行多次网络调用。我根据查询的响应来设置值的动画。

无论我尝试什么,我都无法仅在网络响应时才能播放动画。我知道我获得了缓存结果,因为只要我第一次滚动到该单元格后,该值就会立即生成动画。 (无论如何,我还将它设置为缓存,但这证实我正确地做了它。)

你应该使用hasCachedResults吗?

注意:这与我使用objectWithoutData并进行关系查询这一事实无关。有关更多信息,请参阅EDIT下面的链接

这是我的代码:

    PFObject *obj = [PFObject objectWithoutDataWithClassName:...];
    PFRelation *relation = [obj relationForKey:...];
    PFQuery *q = [relation query];
    [q whereKey:...];

// CHECKING TO SEE IF CACHED
    if ([q hasCachedResult]) {
        NSLog(@"1");
    }

    q.cachePolicy = kPFCachePolicyCacheElseNetwork; // to prevent network calls every time cell is re-used.

// CHECKING TO SEE IF CACHED        
    if ([q hasCachedResult]) {
        NSLog(@"2");
    }


    [q countObjectsInBackgroundWithBlock:^(int number, NSError * _Nullable error) {

// CHECKING TO SEE IF CACHED            
        if ([q hasCachedResult]) {
            NSLog(@"3");
        }
    }

无法打印1,2或3。

修改

可能是一个错误(或至少是不明确的文档)。我进一步研究了一下,我在这里提供了更多信息:Issue on Github

0 个答案:

没有答案