gpt4 book ai didi

iOS-Parse.com 将多个设备与本地数据存储同步

转载 作者:可可西里 更新时间:2023-11-01 05:40:49 25 4
gpt4 key购买 nike

我正尝试在 iOS 中使用本地数据存储。

假设我有两个或更多设备。

我使用 saveEventually 在本地(和云端)保存数据。当仅在一台设备上工作时,它工作正常。

当我开始使用多台设备进行同步时,我使用:

PFQuery *query = [UserPreference query];
[query whereKey:@"userId" equalTo: [PFUser currentUser].objectId];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
if(!error){
[UserPreference pinAllInBackground:objects block:^(BOOL succeeded, NSError *error) {<---- objects here are fine
if(succeeded){
[query fromLocalDatastore];
NSLog(@"Local %@", [(UserPreference*)[[query findObjects] objectAtIndex:0] filterContext ]); <--- however here the old value is retrieved
}
}];
}
}];

所以我从云中获取了正确的对象,然后我 PinAll 但是当我从 localDataStore 检索时检索到旧值?

谁能解释一下:1. 如果这完全可行,即使用本地数据存储在两个设备之间同步2.我做错了什么?

PS:我注意到对象中的 serverData 包含正确的信息但没有更新对象

最佳答案

看来这行得通。因此,当您从服务器获取更新时,您需要取消固定所有具有名称的对象,然后用相同的名称将它们固定回去。之后就可以查询pinWithName了:

  PFQuery *query = [UserPreference query];
[query whereKey:@"userId" equalTo: [PFUser currentUser].objectId];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if(!error){
[UserPreference unpinAllObjectsInBackgroundWithName:@"userPreference" block:^(BOOL succeeded, NSError *error) {
[UserPreference pinAllInBackground:objects withName:@"userPreference"];
}];
}

关于iOS-Parse.com 将多个设备与本地数据存储同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27979578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com