获取请求中的一些奇怪结果 - 核心数据

Posted

技术标签:

【中文标题】获取请求中的一些奇怪结果 - 核心数据【英文标题】:Some weird results in fetch request - Core Data 【发布时间】:2014-02-06 12:32:59 【问题描述】:

我有以下谓词,但在获取请求后我得到了一些非常奇怪的结果。

谓词:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parkingEndTime > %f",floor(timestamp)];

例子:

时间戳 = 1 391 689 631 结果:1​​ 391 689 612 1 391 689 625

这里是完整的代码:

+ (NSArray *)getParkedCars 
    AppDelegate *myAppDelegate = [[UIApplication sharedApplication] delegate];

    NSManagedObjectContext *ctx = [myAppDelegate getThreadSafeManagedObjectContext];

    NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Car"];

    NSTimeInterval timestamp = [[NSDate date] timeIntervalSince1970];
    NSLog(@"Parking End Time: %f",floor(timestamp));
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parkingEndTime > %f",floor(timestamp)];
    [request setPredicate:predicate];

    NSError *error = nil;
    NSArray *result = [ctx executeFetchRequest:request error:&error];
    NSLog(@"Fetched request: %@",[result firstObject]);
    return result;

【问题讨论】:

尝试在谓词中使用%lf 【参考方案1】:

通过在比较之前将其转换为 NSNumber 来修复:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parkingEndTime > %@",@(floor(timestamp))];

【讨论】:

以上是关于获取请求中的一些奇怪结果 - 核心数据的主要内容,如果未能解决你的问题,请参考以下文章

核心数据:NSManagedObjectContext 未保存/获取请求失败,直到应用退出和重新启动

保存核心数据中断获取请求

核心数据获取请求不返回不同的结果

核心数据简单获取请求模板

核心数据获取结果

axios GET 请求有效,但无法将结果内容分配给变量