我正在测试 Parse localDatastore 并在新服务器 PFQuery 之后努力刷新本地数据存储。
PFQuery 工作正常,似乎将数组固定到本地数据存储区就好了。当我更改服务器上数组的内容时,服务器 PFQuery 会下拉更新的数组,但本地数据存储似乎没有更新:
- (void)viewDidLoad {
[super viewDidLoad];
// Query Parse
PFQuery *query = [PFQuery queryWithClassName:@"contacts"];
NSArray *objects = [query findObjects];
[PFObject pinAllInBackground:objects block:^(BOOL succeeded, NSError *error) {
if(succeeded) {
NSLog(@"Successfully retrieved %lu records from Parse.", (unsigned long)objects.count);
} else if (error) {
NSLog(@"Error");
}
}];
}
然后使用 UIButton 将本地数据存储的内容记录到控制台:
-(IBAction)showDatastore {
// Query the Local Datastore
PFQuery *query = [PFQuery queryWithClassName:@"contacts"];
[query fromLocalDatastore];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
NSLog(@"Successfully retrieved %lu contacts from Datastore.", (unsigned long)objects.count);
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
}
在我的示例中,原始数组有 15 个对象。每个数组的计数最初都是 15。然后我从服务器数组中删除一个对象,初始 PFQuery 计数为 14,但本地数据存储计数仍为 15。
Parse 的文档指出:
当一个对象被固定时,每次你通过获取或保存新数据来更新它时,本地数据存储中的副本都会自动更新。
但情况似乎并非如此......至少不是这个推荐的代码。有什么我想念的吗?