在NSM中筛选Realm中的查询会引发NSInvalidArgumentException

我到处寻找,甚至用一些永不消失的病毒警告信息打到一些可疑的网站,我无法弄清楚这一点。

我只是试图按date筛选Results<T>对象:

 let messages = realm.objects(RMChatMessage).filter("timestamp > \(date)) AND (timestamp <= \(to))")) 

而且每当这条线路运行时,就会产生以下结果:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "timestamp > 1970-01-01 00:00:00 +0000"' *** First throw call stack: ( 0 CoreFoundation 0x000000010fba8c65 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x000000011174ebb7 objc_exception_throw + 45 2 Foundation 0x000000010ffb66bd _qfqp2_performParsing + 8495 3 Foundation 0x000000010ffb4526 +[NSPredicate predicateWithFormat:arguments:] + 46 ... 

我尝试使用NSDateFormatter格式如yyyy-MM-dd hh:mm:ssdate.description ,使用NSPredicate(format:...)而不是Result<T>.filter(...)等等,但没有任何工作。

这是Realm中的一些错误吗?

let messages = realm.objects(RMChatMessage).filter("timestamp > %@ AND timestamp <= %@", date, to)

NSPredicate对Swiftstring插值没有任何特殊处理,并且不支持在格式string中直接写入date。