从解析中删除对象的问题

问题描述:

在查询解析对象后尝试从Parse中删除对象时,我遇到了一个问题。从解析中删除对象的问题

我的代码:

 var query = PFQuery(className:"sendMessage") 
     query.whereKey("messageSent", equalTo: PFUser.currentUser()!.username!) 
     query.whereKey("messageReceived", equalTo: self.nameLabel!.text!) 
     query.findObjectsInBackgroundWithBlock({ (objects, NSError) -> Void in 

      if objects != nil { 

       if let objects = objects as? [PFObject] { 
        for object in objects { 


         print(object["message"]) 

        /// here I would go: object.deleteInBackground() 
             object.save() 

         } 
       } 
       } 
     }) 

但似乎我无法找到这样做的正确方法。任何见解?

+0

什么究竟是问题吗? – Wain

+0

它不工作..我有一个错误,说“PFObject没有名为deleteInBackground的成员” – viktor

我以前使用过deleteEventually(),以及PFObject(withoutDataWithClassName: YourClassName, objectId: YourObjectID)

如果这样的作品我不知道为什么,但还有:)

(如本题解析(Objective-C的)海克特表示:https://www.parse.com/questions/delete-row

for object in objects { 
    print(object["message"] 
    var toDelete = PFObject(withoutDataWithClassName: "sendMessage", objectId: object.objectID) 
    toDelete.deleteEventually() 
} 
+0

谢谢你的回应。然而,我的确看到,确实,我宁愿在删除之前跳过找出对象的ID。 – viktor

+0

我很确定你可以访问objectId而不用执行另一个查询。由于您将对象作为PFObjects数组检索,因此objectId应该可以像上面那样访问(添加示例)。 – Mattias

+1

会随之而来。谢谢。之后会更新你。 – viktor

var query = PFQuery(className:"sendMessage") 
let username = PFUser.currentUser()?.username 
    query.whereKey("messageSent", equalTo: username) 
    query.whereKey("messageReceived", equalTo: self.nameLabel!.text!) 
    query.findObjectsInBackgroundWithBlock({ (objects:[AnyObject]?, error:NSError) -> Void in 
     if error == nil { 
      if let objects = objects as? [PFObject] { 
       for object in objects { 
       let deletemessage = object["message"] as! String 
        print(deletemessage) 
        object.delete() 
        } 
      } 
      } 
      else { 
        println("Error") 
       } 
    }) 
+0

。非常感谢你! – viktor

+0

很高兴我帮忙。并给我投票大声笑:) – Lamar

+0

完全,尝试检查绿色标志,但它取消了第一个答案。请启发我如何这样做。 – viktor