Использование NSPredicate для получения точного NSDate из NSManagedObjectContect

Я пытаюсь получить результаты своей сущности "MeterReading", у которой есть два свойства: "отметка времени" и "чтение". «отметка времени» - это NSDate. Сейчас я пытаюсь получить объект с точной датой.

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MeterReading" inManagedObjectContext:context];
[request setEntity:entity];
NSLog(@"%f", [self.timestamp timeIntervalSince1970]);

NSPredicate *pre = [NSPredicate predicateWithFormat:@"timestamp == %@", self.timestamp];
NSLog(@"%@", pre);
[request setPredicate:pre];

Теперь self.timestamp передается другому ViewController заранее, NSLog показывает:

1290264372.210091

Протокол NSPredicate

timestamp == CAST (311957172.210091, «NSDate»)

Первый вопрос: почему разве эти два числа не совпадают?

Второй и более важный вопрос: в ManagedContext у меня есть четыре записи с датами. Если я использую «<=» вместо «==», я получаю результаты с датой меньше той, которую я передал, включая ту, которую я хочу получить. Почему можно t Я получаю единственную дату с оператором "=="? Может ли это быть связано с точностью моих дат?

Спасибо!

7
задан Abizern 21 November 2010 в 13:35
поделиться