我试图在后台找到objectID,这样我就可以在后台成功取消固定并删除对象。但是,objectID由于某种原因返回了一个nil值,从而导致应用程序崩溃。
这是一些代码 -
(imagesToDelete是PFFile数组)
for object in imagesToDelete
{
var imageObject = PFObject(className: "img")
imageObject["theImg"] = object
//Object ID Returns nil
var objID = imageObject.objectId
//fatal error: unexpectedly found nil while
imageObject.removeObjectForKey(objID!)
imageObject.unpinInBackgroundWithBlock({ (success, error) -> Void in
if error == nil
{
imageObject.deleteEventually()
println("Objects deleted!")
}
else
{
println(error)
}
})
}
答案 0 :(得分:0)
此 var objID = imageObject.objectId 将永远不会起作用,因为imageObject是PFObject的一个实例,因此您只能使用该对象保存特定的id或使用parse提供的默认objectID。 例如:
// let's save an object using a specific id
var savingObject = PFObject(classname:"")
savingObject["id"] = 123213
// then you save this object to parse
在删除该对象时,您必须使用 PFQuery 在后台查询该对象,然后您可以获取我们的特定 ID 或默认ID objectId 来自解析。
示例:
// let's query and delete that object
var query = PFQuery(classname:"")
query.whereKey("id", equalTo:123213)
// then you use that findObjectInBackgroundWithBlock() method then delete the object.
即使您在本地保存,您也几乎使用相同的概念希望有所帮助。