Я пытаюсь получить результаты моего объекта «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 у меня есть четыре записи с датами. Если я использую "‹=" вместо "==", я получаю результаты с датой меньше той, которую я передал, включая ту, которую я хочу получить. Почему я не могу получить одну дату с помощью оператора "=="? Может ли это быть связано с точностью моих дат?
Спасибо!