为什么Realm对象不符合CVarArgType?

时间:2015-12-17 16:58:10

标签: swift nspredicate realm

我正在尝试通过父级查询子对象。所以我有以下结构:

class A : Object {

}

class B : Object {
    dynamic var parent: A?
}

以下是无法编译的查询代码:

let parent = A()
let predicate = NSPredicate(format: "parent == %@", parent)
let results = realm.objects(B).filter(predicate)

因为A类不符合CVarArgType。由于官方文档建议使用NSPredicate我很好奇为什么它是这样设计的,我不能使用这样的谓词?

我使用Xcode 7.2和Realm v0.96.2。

更新#1

以下代码正常运行:

let parent = A()
let results = realm.objects(B).filter("parent == %@", parent)

问题仅出在NSPredicate

1 个答案:

答案 0 :(得分:0)

事实证明,用户定义的类型不容易符合CVarArgType,即使它们是NSObject后代也是如此。

作为解决方法,您可以坚持使用RealmCollectionType.filter或使用NSPredicate(format:_argumentArray:_)