Estoy tratando de obtener resultados de mi entidad "MeterReading", que tiene dos propiedades, "timestamp" y "reading". "marca de tiempo" es un NSDate. Ahora estoy tratando de buscar un objeto con una fecha exacta.Usando NSPredicate para obtener NSDate exacto de NSManagedObjectContect
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];
Ahora, self.timestamp se pasa a otro ViewController de antemano, la NSLog muestra:
1290264372,210091
El NSPredicate registra
timestamp == CAST (311957172.210091, "NSDate")
Primera pregunta: ¿Por qué los dos números no son iguales?
Segunda y más importante pregunta: en ManagedContext, tengo cuatro entradas con fechas. Si uso "< =" en lugar de "==", obtengo resultados con una fecha más pequeña que la que aprobé, incluida la que deseo tener. ¿Por qué no puedo obtener la única fecha con el operador "=="? ¿Esto puede estar relacionado con la precisión de mis fechas?
Gracias!
que casi funcionó, ¡gracias! al pasar la matriz apareció un error, pero pasé dos nsdates manualmente al predicado y ahora funciona. :) – denbec
Oops, perdón por eso! Me alegro de que ayudó, sin embargo. –
Tenga en cuenta que este ejemplo no funcionará con los datos centrales. Necesitas usar algo como esto: http://zdam.posterous.com/core-data-fetch-by-date – SpaceTrucker