解析.deleteInBackground不工作(Swift)

时间:2017-08-11 16:36:05

标签: ios swift parse-platform swift3

我第一次使用Parse(parse.com)使用Xcode和Swift 3.当我尝试从云中删除一个对象时,它不会更新,我收到以下消息:

[Error]: Object not found. (Code: 101, Version: 1.12.0)

在我的代码的其他部分,删除对象工作得很好,但在这种情况下它不是。这也很奇怪,因为当我从查询(下面)打印请求时,我确实得到了一个对象,我正在寻找的对象。我试过用块调用delete方法并得到相同的“找不到对象”错误。而且我确保数据库中的课程已经阅读并且如果有任何帮助,则启用写入权限。

这是我的代码:

let query = PFQuery(className: "FriendRequests")
query.whereKey("fromID", equalTo: self.incomingIDs[indexPath.row])
query.whereKey("toID", equalTo: PFUser.current()?.objectId)

query.getFirstObjectInBackground(block: { (object, error) in
    if error == nil {
        if let request = object {
            print(request) // This works!
            request.deleteInBackground()
        }
    }
})

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我回过头来发现这只是ACL的一个问题,如果有人有类似的问题......

首次创建对象时,只有发出请求的用户才具有写访问权限。在保存请求对象之前,我将写访问权限设置为public。

let acl = PFACL()
acl.getPublicReadAccess = true
acl.getPublicWriteAccess = true
friendRequest.acl = acl