我制作了一个名为Synchronizable
的协议,我的一些Realm
个对象符合此协议。
如:
class Comment : Object, Synchronizable {
// ...
}
我想查询所有本地Realm
对象,并检索符合此协议的所有对象。
所以我做了类似的事情:
func getObjectsToSynchronize() -> [Object]{
Array(realm.objects(Object.self)).filter({
if let $0 = $0 as? Synchronizable {
return true
}
return false
})
}
使用Object
Realm Object
类型,但默认情况下此类型对象不实现我的协议,因此我无法检测对象是否符合协议Synchronizable
,它说:
Expression pattern of type 'Object' cannot match values of type 'Synchronizable?'
有办法做到这一点吗?通过查询Realm object
,我认为我走错了路。
错误的方式?
也许我必须创建一个名为Realm
的{{1}}类对象,该对象继承自SynchronizableObject
领域类。
这个类与我想要同步的Realm对象有关系,例如:
Object
然后我应该使用class SynchronizableObject : Object {
// MARK: - Realm Relationships
dynamic var synchronizables : List<Object>()
}
对象
答案 0 :(得分:0)
@AnthonyR您无法直接查询/过滤RealmSwift.Object
,您必须从RealmSwift.Object
继承您的模型
class Comment : Object, Synchronizable {
// ...
}
然后,您可以查询/过滤继承类型的所有对象:
func getObjectsToSynchronize() -> Results<Comment> {
return realm.objects(Comment.self)
}
如果您再解释一下,您可以做些什么,我可以帮助您