尝试更新PFObject时,我一直收到此错误'[错误]:没有结果与查询匹配。 (代码:101,版本:1.12.0)”,这是我的代码:

let userQuery = PFQuery(className: "User")

    userQuery.getObjectInBackgroundWithId("cE3DE48Fa9") {
        (userQueryObject: PFObject?, error: NSError?) -> Void in
        if error != nil {
            print(error)
        }
        else if let userQueryObject = userQueryObject {

            userQueryObject["House_Motto"] = self.campaignMottoTextBox.text

            userQueryObject.saveInBackground()


        }        }


我该怎么办?

这是我的新代码:

currentUser!.setObject(self.campaignMottoTextBox.text!, forKey: "House_Motto")

最佳答案

这是一个如何使用PFUser.query()在解析中查询用户类的示例,请注意我的示例使用findObjectsInBackgroundWithBlock()而不是getObjectsInBackgroundWithId()

var userData1 = [String]()
var userData2 = [Double]()
var allUsers = [PFUser]()

func fetchUserData() {
    let userQuery: PFQuery = PFUser.query()!

    userQuery.orderByAscending("username")
    userQuery.whereKey("username", notEqualTo: (currentUser?.username)!)
    userQuery.findObjectsInBackgroundWithBlock({
        (users, error) -> Void in

        var userData = users!

        if error == nil {
            if userData.count >= 1 {
                for i in 0...users!.count-1 {
                    self.userData1.append(userData[i].valueForKey("columnNameInParse1") as! String)
                    self.startTimes.append(userData[i].valueForKey("ColumnNameInParse2") as! Double)
                }
            }

            self.allUsers = users as! [PFUser]
            self.tableView.reloadData()
        } else {
            print(error)
        }
    })
}


为了更新给定用户的值,您需要...

   func updateObjectInParse(){
    currentUser?.setObject(campaignMottoText.text, forKey: "columnNameInParse")
    currentUser?.saveInBackground()
}


其中,"columnNameInParse"是要在解析中更新的对象的列名。这是区分大小写的。而currentUser是PFUser.currentUser

关于swift - [错误]:没有结果与查询匹配。使用Swift解析(Code:101,Version:1.12.0),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35280307/

10-11 02:47
查看更多