2015-08-17 50 views
2

当我取消检查表格行时,我想从Parse中删除一个对象。如何从Parse中删除对象?

尝试从Parse中删除对象后,查询它们时会发生此问题。

这是我的代码:

if cell.accessoryType == UITableViewCellAccessoryType.Checkmark { 
      cell.accessoryType = UITableViewCellAccessoryType.None 

      var query = PFQuery(className:"Followers") 
      query.whereKey("follower", equalTo: "\(PFUser.currentUser()?.username)") 
      query.whereKey("following", equalTo: "\(cell.textLabel?.text)") 

      query.findObjectsInBackgroundWithBlock { 
       (objects: [AnyObject]?, error: NSError?) -> Void in 
       if error == nil { 

        for object in objects as! [PFUser] { 

         object.deleteInBackground() 
        } 

       } else { 
        println(error) 
       } 
      } 


     } 
+0

你可以使用Xcode中放置一个断点,看看'deleteInBackground'被调用? – kezi

+0

我检查了println,它没有被调用... – lapacino

+0

你可以检查'objects.count!= 0'吗?或者你能看到什么叫做? – kezi

回答

3

我认为这个问题是在你的query.findObjectsInBackgroundWithBlock 我认为它,因为你定义对象作为! [PFUser]而不是[PFObject]

试试这个它应该做的伎俩

query.findObjectsInBackground { (objects, error) in 
     if error == nil, 
      let objects = objects { 
      for object in objects { 
       object.deleteInBackground() 
      } 
     } 
0

我想从解析

是删除Parse iOS SDK要删除的对象的多个对象在Parse server的背景中,您可以使用deleteAllInBackground

您可以使用它与2 dif ferent方式:

PFObject.deleteAll(inBackground: [PFObject]?) 
PFObject.deleteAll(inBackground: [PFObject]?, block: PFBooleanResultBlock?) 

例如:

query.findObjectsInBackgroundWithBlock({ (objects : [PFObject]?, error: NSError?) -> Void in 
    PFObject.deleteAll(inBackground: objects) 
}) 

你也可以看到这个post

我希望我的回答对您有所帮助