我正在实施删除帖子功能。我使用prepare segue myTableView传递PFObject(在代码中显示为对象)来详细查看包含删除功能的视图。我尝试使用PFOBJECT的objectId删除帖子,因为这是唯一的,并且在选择时从原始帖子传递。这是我的代码,
@IBAction func deleteButtonTapped(sender: AnyObject) {
let query = PFObject(className:"Posts")
let tryToDeleteThisObjectId = object.objectId
query.objectId = tryToDeleteThisObjectId
query.deleteInBackground()
但是当我激活我的应用时,我收到错误
'NSInternalInconsistencyException',原因:'尝试将objectId更改为OfflineStore已知的对象。
我理解对象是作为离线传递的,所以我尝试在tableView中保存objectId来传递detailView,它工作正常。但是我不希望用户为此使用额外的蜂窝数据,我想找到更简单的方法来解决这个问题。
我的问题是
如何在没有此错误的情况下从PFobject获取objectId?
如果我不能,是否有其他方法可以删除特定帖子(解析中的数据行)?
请提供示例代码。
答案 0 :(得分:0)
所以,问题是你不能在查询上调用delete。你必须在PFObject上调用它。如果您想进行查询,请尝试此操作。
let query = PFQuery(className: "Class")
query.getObjectInBackgroundWithId("OBJECT_ID") { (obj, err) -> Void in
if err != nil {
//handle error
} else {
obj!.deleteInBackground()
}
}
但是,在您的代码中,我还看到您调用object.id
,在这种情况下,您只需调用object.deleteInBackground()
即可删除该对象。