解析 IOS 删除所有对象,其中键 = 对象 ID



有没有一种简单的方法可以删除特定类(即消息)中满足特定条件的所有对象(即消息),例如"UserID"=user,以便删除与特定用户关联的消息类中的所有行?

试试这个,

 PFQuery *query = [PFQuery queryWithClassName:@"messages"];
 [query whereKey:@"UserID" equalTo:@"user"];
 [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
 if (!error) {
     // The find succeeded.
     NSLog(@"Successfully retrieved %d scores.", objects.count);
     // Do something with the found objects
     for (PFObject *object in objects) {
         [object deleteInBackground];
     }
 } else {
     // Log details of the failure
     NSLog(@"Error: %@ %@", error, [error userInfo]);
 }
}];

更新

取代

for (PFObject *object in objects) {
    [object deleteInBackground];
}

[PFObject deleteAllInBackground:objects];

感谢迈克沃兹的更新。

这帮助我最终弄清楚如何在使用 Parse 和本地存储时删除已删除对象的所有相关指针对象。

希望这可以为某人节省几个小时。

Parse.Cloud.afterDelete("Student", function(request) {
  // after delete a student find the associated sessions and remove
  var query = new Parse.Query("Session");
    var userPointer = {
      __type: 'Pointer',
      className: 'Student',
      objectId: request.object.id
    }
  query.equalTo("studentOwner", userPointer);
  query.find().then(function(studentSessions) {
    return Parse.Object.destroyAll(studentSessions);
  }).then(function(success) {
    // The related sessions were deleted
  }, function(error) {
    console.error("Error deleting related sessions " + error.code + ": " + error.message);
  });
});

最新更新