繁体   English   中英

是什么导致领域通知

[英]What caused Realm notification

谁能解释我怎么知道什么操作导致了我的领域通知触发?

我有对象,并在对象的更改上创建通知。 这些对象可以从许多地方进行更新,我想知道它发生的确切位置

我很确定,没有办法从Realm API中分辨出哪个对象更改导致了通知。

但是,您可以选择的一种方法是在对象上创建一个忽略的属性,并在对象上设置一个值,以了解是谁写的。 这是一个例子:

//Class definition
class Stuff: Object{
  @objc dynamic var whatever = ""

  //In memory only
  @objc dynamic var blame = ""
  override static func ignoredProperties() -> [String] {
    return ["blame"]
  }
}

然后在代码的其他地方:

//Place #1 where object is changed
let myObject = Stuff()
myObject.blame = "place1"

//Place #2 where object is changed
let myObject = Stuff()
myObject.blame = "place2"

然后,在您的Realm侦听器中,您可以访问对象的blame属性以查找更改的位置:

token = myObject.observe { change in
  switch change {
  case .change(let properties):
    for property in properties {
      print(property.blame) //<-- This tells you where it changed
    }
  case .error(let error):
    print("An error occurred: \(error)")
  case .deleted:
    print("The object was deleted.")
  }
}

希望这会有所帮助。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM