Ios- Parse.com删除一个对象

时间:2013-09-20 13:00:22

标签: ios parse-platform jointable

我认为我的情况过于复杂。在很多情况下,我正在通过联接表进行工作。

如果我找到了联接,我想删除它,如果我找不到,我想添加它。

添加新联接可以正常工作。我无法想象如何删除..

这是我的代码。如果有人发现任何错误 - 或者更好的方法,请提供建议。

- (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];
        }

    }];

}

1 个答案:

答案 0 :(得分:2)

首先,您可以使用以下内容代替使用枚举块删除每个对象:

 [PFObject deleteAllInBackground:objects];

其次,您可能会遇到[self refreshJoins:self问题,因为它可以在删除所有object之前运行。你应该把它放在-deleteInBackground:block中以确保[self refreshJoins:self]`正常工作