2014-02-06 3 views
1

У меня есть следующий предикат, но я получаю некоторые действительно странные результаты после запроса выборки.Некоторые странные результаты в запросе выборки - Основные данные

предиката:

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

Пример:

  • меток времени = 1 391 689 631
  • Результаты: 1 391 689 612

Вот полный код:

+ (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; 
} 
+0

Попробуйте использовать '% lf' в предикате – Wain

ответ

0

Fixed путем преобразования его в NSNumber перед сравнением:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parkingEndTime > %@",@(floor(timestamp))]; 
Смежные вопросы