美文网首页
2022-11-24 使用RealmSwift 个人理解记录

2022-11-24 使用RealmSwift 个人理解记录

作者: 欧特耳佩 | 来源:发表于2022-11-24 11:19 被阅读0次

    LinkingObjects

    iShot_2022-11-24_10.30.45.png

    在某些时刻我们需要LinkingObjects为反向绑定。比如一个人有一只狗。
    增加绑定后,删除狗,人用有的狗便会自动删除.
    需要注意的是:
    1.根据业务需要,Person.dogs为0时,需不需要删除Person
    2.相同的一只Dog可以重复添加到Person.dogs上的。
    3.realm.write { 必须在wirte内使用 }

    我会:

    1. Dog增加@Persisted(primaryKey: true) var id:,获得所有realm.objects(Dog.self),再使用objects.where { $0.id == id} 删除重复的Dog.
      • 获得所有Person realm.objects(Person)
      • 使用子筛查筛出dogs为0的Person并且删除 objects.where {($0.dogs).count == 0}
      • 增加person, 给person.dogs,append(dog)

    observe

    iShot_2022-11-24_11.07.36.png

    Person 和 Dog也许我们都在不同的业务中需要观察更改并且显示。
    注意:
    在回调中要使用 [weak self]
    否则objectNotificationToken?.invalidate() 不生效。会导致多个地方反复回调

    讲个笑话:
    在我以为realm.write(withoutNotifying: [notificationToken!])是指定给某个realm通知发消息。其实是忽略该通知。我调了半天才发现。

    相关文章

      网友评论

          本文标题:2022-11-24 使用RealmSwift 个人理解记录

          本文链接:https://www.haomeiwen.com/subject/rokzxdtx.html