ios - hoy - compare dos fechas string en javascript
No se puede usar un predicado que compare fechas en Magical Record (2)
Estoy creando un método que eliminará todos mis NSManagedObjects que no se actualizaron en la última sincronización.
- (void)removeStaleObjects {
// Delete objects that have not been updated in this sync.
NSPredicate *stalePredicate = [NSPredicate predicateWithFormat:@"updated < %@", self.syncStart];
NSArray *staleObjects = [Node MR_findAllWithPredicate:stalePredicate];
for (Node *n in staleObjects) {
[[NSManagedObjectContext MR_defaultContext] deleteObject:n];
}
}
El código sigue fallando en la línea MR_findAll ... con
[__NSDate objCType]: unrecognized selector sent to instance
Revisé mi sintaxis con la documentación de Apple y estoy 99% seguro de que estoy creando el predicado correctamente, startDate es solo
_startDate = [NSDate date];
que se ejecuta antes de mi sincronización. luego de mi sincronización llamo
[self removeStaleObjects];
¿Alguien sabe dónde estoy arruinando?
Actualización : Pude hacerlo funcionar almacenando el tiempo de actualización como un doble. Sin embargo, todavía estoy interesado en hacer que funcione con NSDates, así que si alguien encuentra algo, publíquelo aquí.
También me parece que tu predicado está formateado correctamente. Aquí hay un par de cosas que puede hacer:
1) Al depurar esto, imprime ese predicado. Deberías ver algo como:
updatedDate < {some integer value}
Las fechas se almacenan como enteros debajo de las cubiertas, y un predicado también las convierte correctamente. Si su predicado no se puede imprimir en el depurador, sabrá de inmediato
2) Verifique su tipo de fecha actualizada . Asegúrate de que sea una fecha (confío que ya es una fecha, pero no has especificado en tu pregunta)
3) Asegúrese de que su objeto Node tenga el atributo updatedDate en él.
El problema es el nombre "actualizado" de tu atributo. isUpdated
conflicto con el método NSManagedObject
de NSManagedObject
. (Consulte Datos básicos NSPredicate "deleted == NO" no funciona como se esperaba para un problema similar con un atributo "eliminado").
Si cambia el nombre de su atributo, todo funciona como se espera.