2015-08-17 51 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

我希望我的回答對您有所幫助