我想我把这个场景复杂化了。我正在处理多对多情况下的联接表。
如果找到一个连接,我想删除它,如果找不到,我想添加它。
添加一个新的连接工作正常。我不知道如何删除..
这是我的代码。如果有人发现任何错误 - 或者更好的方法,请提出建议。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%s", __FUNCTION__);
//Create query for all current user objects
PFQuery *query = [PFQuery queryWithClassName:@"DDPeopleJoin"];
[query whereKey:@"parseUser" equalTo:[PFUser currentUser]];
[query whereKey:@"serviceKey" equalTo:[currentService valueForKey:@"serviceKey"]];
[query whereKey:@"personKey" equalTo:[currentPerson valueForKey:@"personKey"]];
query.cachePolicy = kPFCachePolicyCacheThenNetwork;
// Run the query - if there is an object delete it otherwise, go to JoinPeople
allDeadPeople = [NSMutableArray new];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
if (!objects) {
NSLog(@"New Person");
[self joinPeople];
return;
}
NSLog(@"Found a match, erase them");
for (PFObject *object in objects) {
[object deleteInBackground];
}
[self refreshJoins:self];
}
}];
}
最佳答案
首先,您可以使用以下方法代替使用枚举 block 来删除每个对象:
[PFObject deleteAllInBackground:objects];
其次,您可能会遇到 [self refreshJoins:self
的问题,因为它会在所有 object
被删除之前运行。你应该把它放在 -deleteInBackground:block
中以确保 [self refreshJoins:self]` 正常工作
关于Ios- Parse.com 删除一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917453/