找不到更新错误Parse Swift的对象

时间:2016-01-08 07:24:50

标签: xcode swift parse-platform pfquery

我在Xcode 7.2上使用解析而我在使用swift更新对象时遇到问题。我想在解析类列中更新我的布尔值"批准"我的班级名称是"请求"我有" FromUserName"列类型为String和" ToUsername"也是String的列

这是我在swift中的代码

 func block(){
    let name = self.userDelName
    let query = PFQuery(className: "Request")
    //let username = PFUser.currentUser()?.username!
    if let username = PFUser.currentUser()?.username! {
         query.whereKey("ToUsername", equalTo: username)
    }
    query.whereKey("FromUsername", equalTo: name)
    print(name+" IMHEHEHEHEHERRRR")
    query.getFirstObjectInBackgroundWithBlock{(object,error) -> Void in
        if error == nil {
                print(object)
                object!["Approve"] = false
                object!.saveInBackgroundWithBlock {(success: Bool, error: NSError?) -> Void in
                    if (success) {
                       print("success")
                    } else {
                        print("down")
                       print(error)
                    }
                }

               }
        }

    }

,错误是

[Error]: object not found for update (Code: 101, Version: 1.11.0)

我现在不知道该怎么做。

感谢任何帮助。谢谢

编辑:这是我保存的方法

requested = PFObject(className: "Request")
        requested!["From"] = PFUser.currentUser()
        requested!["FromUsername"] = PFUser.currentUser()?.username
        requested!["ToUsername"] = user
        requested!["To"] = newFriend
        requested!["Approve"] = true
         requested!.saveInBackgroundWithBlock {(success: Bool, error: NSError?) -> Void in
            if error == nil {
               print("success")
            }
            else{
                print(error)
            }
        }

1 个答案:

答案 0 :(得分:0)

尝试将保存代码更改为:

storageEvent.key //check if 'fbstatus'
storageEvent.storageArea // the storage object
storageEvent.oldValue
storageEvent.newValue

该行:

    requested = PFObject(className: "Request")
    requested!["From"] = PFUser.currentUser()
    requested!["FromUsername"] = PFUser.currentUser()?.username
    requested!["ToUsername"] = user
    requested!["To"] = newFriend
    requested!["Approve"] = true
    requested.ACL?.setPublicWriteAccess(true)
     requested!.saveInBackgroundWithBlock {(success: Bool, error: NSError?) -> Void in
        if error == nil {
           print("success")
        }
        else{
            print(error)
        }
    }

将设置它,以便任何人都可以编辑到该对象。这可能不是你想要的。还有其他方法可以允许某人写一个对象。您可以根据自己的需要以及Parse后端的配置方式使用它们:

 ACL?.setPublicWriteAccess(true)

另请注意,这不适用于解析中的当前对象。仅适用于添加setWriteAccess方法后保存的对象。如果要在parse中编辑当前对象,则必须手动更改数据库本身的读写权限。