Я пытаюсь получить результаты моей сущности 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
отметка времени == CAST (311957172.210091, «NSDate»)
Первый вопрос: почему два числа не совпадают?
Второй и более важный вопрос: в ManagedContext у меня есть четыре записи с датами. Если я использую «<=» вместо «==», я получаю результаты с датой, меньшей той, которую я прошел, включая ту, которую я хочу получить. Почему я не могу получить одну дату с оператором "=="? Может ли это быть связано с точностью моих дат? </p>
Спасибо!