Nie można użyć predykatu, który porównuje daty w rekordzie magicznym
Tworzę metodę, która usunie wszystkie moje obiekty NSManagedObject, które nie zostały zaktualizowane w ostatniej synchronizacji.
- (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];
}
}
Kod nadal nie działa w linii MR_findAll ... z
[__NSDate objCType]: unrecognized selector sent to instance
Sprawdziłem moją składnię z dokumentacją Apple i jestem 99% pozytywny, że tworzę predykat poprawnie, startDate jest właśnie
_startDate = [NSDate date];
który zostanie uruchomiony przed moją synchronizacją. potem po mojej synchronizacji dzwonię
[self removeStaleObjects];
Czy ktoś wie, gdzie się bawię?
Aktualizacja: Udało mi się go uruchomić, przechowując czas aktualizacji jako podwójny. Nadal jednak zależy mi na tym, aby działał z NSDates, więc jeśli ktoś coś wymyśli, opublikuj go tutaj.