Parse platform 不一致的结果在PFUser和PFObjects之间创建双向关系
我试图使用PFRelations在PFUser和一些PFObjects之间创建双向关系 首先,我创建一个帖子并将其保存在后台。 在完成块中,我在PFUser中添加新的帖子,方法是将已经与该用户相关的帖子列表追加,并使用同步save调用重新保存该用户 投递始终以与用户的正确关系正确保存,但是,与用户中投递的关系仅间歇工作。每次通过代码都会得到正确的结果,这让我相信这是某种竞赛条件。什么会导致这种行为?有没有更好的方法来实现理想的关系 保存帖子时,因为帖子有一列存储所有者,所以所有者(父级)也会自动保存,这是一个非常好的解析功能Parse platform 不一致的结果在PFUser和PFObjects之间创建双向关系,parse-platform,Parse Platform,我试图使用PFRelations在PFUser和一些PFObjects之间创建双向关系 首先,我创建一个帖子并将其保存在后台。 在完成块中,我在PFUser中添加新的帖子,方法是将已经与该用户相关的帖子列表追加,并使用同步save调用重新保存该用户 投递始终以与用户的正确关系正确保存,但是,与用户中投递的关系仅间歇工作。每次通过代码都会得到正确的结果,这让我相信这是某种竞赛条件。什么会导致这种行为?有没有更好的方法来实现理想的关系 保存帖子时,因为帖子有一列存储所有者,所以所有者(父级)也会自动
当您单步执行代码时,将在下次重新保存之前执行并完成自动保存。但是当您运行代码时,无法保证哪个保存到PFUser对象会首先发生。这可以通过一个操作作为云代码实现。当你的帖子被保存后,获取当前用户,并将他们之间的关系添加到帖子中。当然-但是考虑到这似乎是一种有效的方法,我想知道为什么它不完全成功。我还希望有更少的活动部件-暂时避免云代码。
PFUser *currentUser = [PFUser currentUser];
PFObject *posting = [PFObject objectWithClassName:@"Postings"];
__weak HLReviewPostItemViewController *myself = self;
posting[@"title"] = self.createdItem[@"title"];
posting[@"price"] = self.createdItem[@"price"];
posting[@"owner"] = currentUser;
[posting saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (!error) {
PFGeoPoint *currentGeoPoint = [myself.locationManager getCurrentGeoPoint];
[currentUser setObject:currentGeoPoint forKey:@"geoPoint"];
PFRelation *postingsForUser = [currentUser relationForKey:@"postings"];
[postingsForUser addObject:posting];
NSError *error;
[currentUser save:&error];
if (!error) {
[myself.dataManager fetchLocalUsers];
} else {
NSLog(@"Error saving Posting in user relation: %@", error);
}
} else {
NSLog(@"Error saving Posting: %@", error);
}
}];