假设有两个iDevices:device1
和device2
。两个设备都固定了从Parse后端检索到的一些对象foobar
。
device1
在-deleteEventually
上执行foobar
。这会导致对象也自动取消固定。此删除传播到后端,后端现已删除了foobar。
device2
执行通常会获取foobar
的查询;除了,它不见了。
foobar
本地数据存储区device2
会发生什么情况?
答案 0 :(得分:3)
由于本地数据存储是...本地的,因此该对象将保留在第二个设备中,直到它收到有关对象的更新,并再次固定它们(显然取消固定后)。如果您不从后端请求新对象,则不会对第二个进行任何更改。
答案 1 :(得分:1)
以下是我在我的应用中使用的此类问题的解决方案:
代码示例:
- (BFTask *)find:(PFQuery *)query {
return [[query findObjectsInBackground] continueWithSuccessBlock:^id(BFTask *task) {
BFTask *(^pin)(void) = ^ {
return [[PFObject pinAllInBackground:task.result] continueWithExecutor:[BFExecutor mainThreadExecutor]
withSuccessBlock:^id(BFTask *task) {
return task.result;
}];
};
[query fromLocalDatastore];
return [[query findObjectsInBackground] continueWithBlock:^id(BFTask *task) {
if (!task.error && [task.result count]) {
return [[PFObject unpinAllInBackground:task.result] continueWithBlock:^id(BFTask *task) {
return pin();
}];
} else {
return pin();
}
}];
}];
}