我使用查询来填充单元格上的值并对其进行缓存,以避免在重用单元格时进行多次网络调用。我根据查询的响应来设置值的动画。
无论我尝试什么,我都无法仅在网络响应时才能播放动画。我知道我获得了缓存结果,因为只要我第一次滚动到该单元格后,该值就会立即生成动画。 (无论如何,我还将它设置为缓存,但这证实我正确地做了它。)
你应该使用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