Frage

Ich versuche, herauszufinden, wie man meine Coredata Informationen zu durchlaufen und finden Sie Objekte, die eine createdAt (Teil meiner Aufgabe als NSDate) haben, die innerhalb eines NSTimeInterval ist. Wie kann ich diese auf?

Ich habe auf der Dokumentation sieht: http://developer.apple.com/documentation/Cocoa/Conceptual/ Prädikate / predicates.html

Aber ich finde nichts da.

Benötige ich zwei Zeitmarken zu erstellen und verwenden SQL ist eine Sache zwischen?

Jede Hilfe wäre wunderbar.

War es hilfreich?

Lösung

Zunächst einmal ist es nicht sinnvoll, zu prüfen, ob ein NSDate innerhalb eines NSTimeInterval ist, weil NSTimeInterval gibt nur eine Länge von Zeit, nicht die Lage. Stattdessen möchten Sie zwei separate NSDates verwenden, um den Anfang und das Ende Ihrer Intervalle angeben.

Hier ist, wie es ist (beginningTime und endTime sind NSDates) aussehen würde.

NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"YourEntityName" inManagedObjectContext:yourContext];
NSPredicate *beginningPredicate = [NSPredicate predicateWithFormat:@"createdAt >= %@", beginningTime];
NSPredicate *endPredicate = [NSPredicate predicateWithFormat:@"createdAt <= %@", endTime];
request.predicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:beginningPredicate, endPredicate, nil]];
NSArray *results = [yourContext executeFetchRequest:request error:NULL];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top