Realm Can';按NSDate属性正确查询领域结果

Realm Can';按NSDate属性正确查询领域结果,realm,Realm,我想按谓词查询领域结果,但当我使用NSDate属性作为参数时,谓词是错误的 我使用最新的领域SDK Xcode 10.3 + (NSArray *)getBookingListFromDBWithStartTime:(NSDate *)startTime endTime:(NSDate *)endTime { NSPredicate *pred = [NSPredicate predicateWithFormat:@"rez_time >= %@ AND rez_time <

我想按谓词查询领域结果,但当我使用NSDate属性作为参数时,谓词是错误的

我使用最新的领域SDK Xcode 10.3

+ (NSArray *)getBookingListFromDBWithStartTime:(NSDate *)startTime endTime:(NSDate *)endTime
{
   NSPredicate *pred = [NSPredicate predicateWithFormat:@"rez_time >= %@ AND rez_time < %@", startTime, endTime];
   RLMResults<CDRealmBookingModel *> *sessionArray = [CDRealmBookingModel objectsWithPredicate:pred];
   //Printing description of pred: rez_time >= CAST(589885200.000000,"NSDate") AND rez_time < CAST(589917600.000000, "NSDate")
   //Printing description of startTime: 2019-09-11 09:00:00 +0000
}
+(NSArray*)getBookingListFromDBWithStartTime:(NSDate*)startTime endTime:(NSDate*)endTime
{
NSPredicate*pred=[NSPredicate PREDITEWITHFORMAT:@“rez_时间>=%@和rez_时间<%@”,开始时间,结束时间];
RLMResults*sessionArray=[CDREALMBookingModelObjectswithPredicate:pred];
//pred:rez_time>=CAST(589885200.000000,“NSDate”)和rez_time

我试图将in和out值的NSDate格式统一到realmL。ike“yyyymmddhhmmssss”。但仍然无法查询结果。

领域文件中有结果。我可以在Realm浏览器中看到它。Realm完全支持按NSDates进行过滤,因此不清楚问题出在哪里。这看起来也像objc,因此您可能需要添加该标记。可能startTime和EndTime在数据库中没有匹配项。你有没有把它们都打印出来以检查你要查询的实际日期,并查看你的数据库中是否有属于该范围的项目?是的,我已经打印了所有结果,没有问题。我猜域不能用一个字段查询两次<代码>雷兹尤时间>=%@和雷兹尤时间<%@
是。您可以这样查询以创建一个范围。我做了一个你的代码的快速版本,它工作得很好。完全支持NSDate或Swift日期查询,因此不清楚问题出在哪里。请参阅注意,NSDates支持AND和BETHEN。如上所述,即使您的领域中有数据,也可能与您正在运行的查询中显示的日期不匹配。您是否尝试在没有筛选器的情况下运行查询以查看是否加载了任何数据?是的,如果我在没有筛选器的情况下运行查询,则可以加载所有数据。我仍然找不到为什么过滤代码不工作。所以我只需加载所有数据并再次按Objective-C进行过滤。这很笨拙。