【发布时间】:2017-04-14 14:50:44
【问题描述】:
我正在尝试从 Heroku/Parse 服务器中删除 username = usernameSelected 的行。选择的用户名不是 nil 并且确实存在于服务器上。似乎没有任何问题,只有“找不到对象”而不是删除整行。
let query = PFQuery(className: "Requests")
query.whereKey("username", equalTo: usernameSelected)
query.limit = 1
query.findObjectsInBackgroundWithBlock({ (objects, error) in
if error != nil {
}else {
if let objects = objects {
for obj in objects {
obj.deleteInBackgroundWithBlock({ (success, error) in
activityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents()
if error != nil {
self.alertDisplay("Error", message: error?.userInfo["error"] as! String)
}else {
self.alertDisplay("", message: "Styles Submitted..! Please wait for your next Style")
}
})
}
}
}
})
【问题讨论】:
-
哪个块出现了这个错误? findObjects... 还是 deleteInBackground...?如果是第二个,您是否为您删除的所有对象获取它?
-
想一想:你是如何在这个类/对象上设置 ACL 的?
-
+Lou Franco:deleteInBackground 块,当对象存在时返回错误(Object not found)。
-
+toddg: 什么是 ACL?
-
ACL 是访问控制列表。每个对象都有一个。它们与 CLP(类级别权限)一起工作,以查看谁可以对对象执行什么操作。首先,用户的权限必须通过 CLP,如果他们通过 CLP,它会检查对象的 ACL。您可以限制谁可以找到对象(在不知道 objectId 的情况下进行查询)、获取对象(使用 objectId 获取/查询)、创建新对象、修改对象(保存/销毁)。可能由于您可以找到一个对象,因此您对该对象具有读取权限但没有写入权限。尝试使用主密钥。
标签: swift debugging heroku parse-server