在Realm中实现Parse的currentUser

时间:2016-03-21 04:04:32

标签: ios swift realm

我想在Realm中实现PFUser.currentUser功能,当我更新当前用户的字段时,我会收到异常,特别是RLMException(@"Object has been deleted or invalidated.")

我当前的用户变量如下:

static var currentUser: User? {
    get { return Persistence.sharedStack.fetch(User.self).first()?.value?.first }
    set {
        if let model = newValue {
            Persistence.sharedStack.insertModel(model)
        }
    }
}

我不明白是什么原因导致用户失效或被删除。

1 个答案:

答案 0 :(得分:1)

Realm对象只能通过以下两种方式之一使其无效:

  1. 该线程的Realm实例已在用户代码(您的代码)中明确调用invalidate()
  2. 使用Realm.delete(_:)Realm.deleteAll()由用户代码中的任何线程(您的代码)显式删除Realm对象。
  3. 所以为了避免命中"对象已被删除或无效"例外情况,请不要执行上面列出的两项操作,导致User对象失效,并且您将全部设置完毕!