【问题标题】:Unable top delete parse object in swift无法快速删除解析对象
【发布时间】:2015-11-04 15:21:34
【问题描述】:

我试图创建一个功能,让用户在点击垃圾桶按钮时删除他们的帖子(PFObject)。我遵循了 Parse 文档,但我似乎无法让它工作。有人可以告诉我我做错了什么,以及如何解决它。提前致谢!

代码如下:

var currentObject : PFObject?

@IBAction func trashTapped(sender: AnyObject) {

    if let object = currentObject {
        object.deleteInBackground()
    }
    self.dismissViewControllerAnimated(true, completion: nil)
}

【问题讨论】:

  • 当前对象是否与当前视图控制器绑定?可能它计划删除,但您在它在后台执行工作之前释放 currentObject(因此,对象)?
  • 你可能应该在一个块中删除它,这样你就知道它是否被成功删除,然后才关闭视图控制器。对于在查询中找到的对象,删除最终效果更好,就像@OlegShanyuk 所说的那样,在使用此方法进行删除之前,该对象可能会被释放。我真的很惊讶您没有遇到内部不一致错误。
  • @OlegShanyuk 当前对象绑定到当前 VC,但是我认为你是对的,currentObject 正在被释放,因为它不知道要删除哪个特定对象。
  • @pbush25 使用此设置我没有遇到内部错误,它只是没有做任何事情,而是关闭了 VC。但是我尝试删除一个块中的对象,它工作得很好,谢谢你们的帮助!
  • @DavidVillegas 在它可能工作的块中,因为块保留外部引用。无论如何,这种方法是糟糕的设计。最好对对象列表有一个外部依赖。因此,您可以安全地显示/关闭 viewControllers

标签: swift parse-platform pfobject


【解决方案1】:

您必须使用deleteInBackgroundWithBlock,然后在完成后关闭该块内的视图控制器,但请确保在主线程上调用dismissViewControllerAnimated

【讨论】:

  • 感谢删除块中的对象完美!
猜你喜欢
  • 1970-01-01
  • 2018-09-17
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2020-12-05
  • 2023-03-06
  • 2014-08-26
  • 1970-01-01
相关资源
最近更新 更多