我已经使用Parse.com构建了一个iOS应用程序
我想先从缓存中检索数据,然后再从网络中检索数据
为此,我使用kPFCachePolicyCacheThenNetwork
了适合我要求的缓存策略。
PFQuery *employesquery = [PFQuery queryWithClassName:@"employesTable"];
[employesquery whereKey:@"UserID" equalTo:[PFUser currentUser]];
[employesquery includeKey:@"empID"];
[employesquery includeKey:@"empID.user"];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
//APPLIES CACHE... ********
employesquery.cachePolicy = kPFCachePolicyCacheThenNetwork;
[employesquery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
[hud hide:YES];
NSMutableArray *empData = [[NSMutableArray alloc] init];
for (PFObject *object in objects)
{
//Getting Data For Item
PFObject *employeeObject = [object objectForKey:@"empID"];
[empData addObject:employeeObject];
}
[self fetchEmployeeData:empData];
}];
但是使用这个每个数据检索两次,可重复的数据。
如何避免这种可重复的数据,
一旦从网络获取数据,之前显示的数据(使用缓存)就会被清除/隐藏。
我试过了[PFQuery clearAllCachedResults];
它被清除了所有的缓存,以便下一次迭代的缓存中没有数据。