无法通过对象链接查询NSData属性

时间:2016-10-13 23:56:18

标签: ios swift realm

我有这样的模特:

class Session: Object {
    dynamic var token: NSData?
}

class SessionsPool: Object {
    let sessions = List<Session>()
}

我可以使用所需的令牌

请求所有会话(通常有一个或零)
let myToken: NSData = ...
let sessions = self.realm.objects(Session).filter("token == %@", myToken)

效果很好。

我想请求所有至少有一个会话具有所需令牌的池。我想&#34;观察&#34;这个更新请求。

let myToken: NSData = ...
var pools = self.realm.objects(SessionsPool).filter("ANY sessions.token == %@", myToken)
pools.addNotificationBlock { (change) in
            // Some code
        }

但由于错误,我无法做到:

*** Terminating app due to uncaught exception 'Unsupported operator', 
reason: 'NSData properties cannot be queried over an object link.'

因此,我可以使用token == *someNSData*或类似ANY sessions.stringToken == *someNSString*之类的谓词,但不能使用ANY sessions.token == *someNSData*

NSData出了什么问题?

1 个答案:

答案 0 :(得分:1)

尚未实现该特定查询类型:https://github.com/realm/realm-cocoa/issues/4222

但是,您的查询可以重构为Realm支持的内容:

替换为:ANY sessions.token == %@

这样:SUBQUERY(sessions, $session, $session.token == %@).@count > 0