【发布时间】:2018-03-30 11:05:57
【问题描述】:
我制定了一个名为 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 中查询时走错路了。
走错路了?
也许我必须创建另一个名为 SynchronizableObject 的 Realm 类对象,它继承自 Object 领域类。
这个类会和我想要同步的Realm对象有关系,比如:
class SynchronizableObject : Object {
// MARK: - Realm Relationships
dynamic var synchronizables : List<Object>()
}
然后我应该用Realm 对象查询这个类
【问题讨论】: