为什么 Realm 对象不符合 CVarArgType?
Why Realm Object does not conform CVarArgType?
我正在尝试通过父查询子对象。所以我有以下结构:
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)
因为class A 不符合 CVarArgType。由于官方文档建议使用 NSPredicate
我很好奇为什么它是这样设计的,我不能使用这样的谓词?
我使用 Xcode 7.2 和 Realm v0.96.2。
更新#1
以下代码工作正常:
let parent = A()
let results = realm.objects(B).filter("parent == %@", parent)
所以问题只出现在 NSPredicate
。
事实证明,用户定义的类型不容易符合 CVarArgType
,即使它们是 NSObject
后代。
作为解决方法,您可以坚持使用 RealmCollectionType.filter
或使用 NSPredicate(format:_argumentArray:_)
。
我正在尝试通过父查询子对象。所以我有以下结构:
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)
因为class A 不符合 CVarArgType。由于官方文档建议使用 NSPredicate
我很好奇为什么它是这样设计的,我不能使用这样的谓词?
我使用 Xcode 7.2 和 Realm v0.96.2。
更新#1
以下代码工作正常:
let parent = A()
let results = realm.objects(B).filter("parent == %@", parent)
所以问题只出现在 NSPredicate
。
事实证明,用户定义的类型不容易符合 CVarArgType
,即使它们是 NSObject
后代。
作为解决方法,您可以坚持使用 RealmCollectionType.filter
或使用 NSPredicate(format:_argumentArray:_)
。