所以在我的应用程序中,我使用Parse作为用户帐户。我有一个班级"关注" " to" "来自"包含用户对象ID的字段,允许用户互相关注。现在,如果我以某种方式删除用户,则跟随关系保持不变并且查询空用户数据会引发对象未找到错误。我想知道的是如果删除跟随关系,如果有任何"到"或"来自" fields包含不存在的对象的objectID。
我已经尝试通过objectID查询对象,但是任何检查空数据的尝试(比如检查user.username是否为nil)都会导致丢失对象错误,我无法检查对象是否是没有,因为Xcode说它永远不会。
谢谢!
答案 0 :(得分:2)
我认为您需要手动获取它,如果您已删除用户,则可以删除其所有关系以维护数据库完整性,以下是删除任何用户后要调用的代码。
PFQuery * _to = [PFQuery queryWithClassName:@"Follow"];
[_to whereKey:@"to" equalTo:@"Replace UserID of Deleted User"];
PFQuery * _from = [PFQuery queryWithClassName:@"Follow"];
[_from whereKey:@"from" equalTo:@"Replace UserID of Deleted User"];
PFQuery *query = [PFQuery orQueryWithSubqueries:@[_to, _from]];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) {
if (!error) {
// The find succeeded.
NSLog(@"Successfully retrieved %d relations.", results.count);
// Do something with the found objects, lets delete them all to intact relationship
[PFObject deleteAllInBackground:results];
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
请点击此链接获取详细说明和信息:
Parse Compound Queries