在Swift中交叉引用Realm查询的谓词

时间:2016-12-04 07:56:16

标签: ios swift realm nspredicate

所以我最近在Swift中学习了Realm,并且遇到了关于数据模型之间潜在通知的设计问题。如果有人愿意提供一些见解,将不胜感激。

// Class A is what users mainly interact with
Class A: Object {
    dynamic var propertyA = ""
    dynamic var propertyB = ""
    dynamic var propertyC = ""

    override static func primaryKey() -> String? {
        return "propertyA"
    }
}

// Class B is what the server interacts with, like data feeding
Class B: Object {
    dynamic var propertyA = ""
    dynamic var propertyX = ""
    dynamic var propertyY = ""
    dynamic var propertyZ = ""

    override static func primaryKey() -> String? {
        return "propertyA"
    }
}


我在控制器内设置了Object A的通知块。因此,只要在resultObjectsA中发生更改,通知块就会被触发。

let resultObjectsA = realm.objects(A).filter('predicate1')
let notificationTokenA = resultObjectsA.addNotificationBlock {
    ...
}


在我正在构建的应用程序中,用户可以选择一组Object A,应用程序将从服务器查询选择集的状态。返回结果将存储/显示在Object B中。现在,我需要为Object B

编写查询/谓词
let resultObjectsB = realm.objects(B).filter('predicate2')

这样propertyA条目中的resultObjectB可以在propertyA条目的resultObjectsA中找到,就像一对一的映射一样。

我不确定这样的谓词是否可行。如果还有其他方法可以实现我想在这里做的事情,我也非常渴望学习。

0 个答案:

没有答案