NSPredate und CoreData - Entscheiden Sie, ob ein Date-Attribut "heute" (oder zwischen letzter Nacht 12 Uhr bis heute Nacht 12 Uhr) auf iOS ist

8

Ich verwende ein NSFetchedResultsController und ein UITableViewController , um ein UITableView aus einer CoreData-Datenbank zu füllen.

Ich habe ein NSDate -Objekt in diesem Date-Attribut mit der Bezeichnung "startTime" gespeichert. Dann versuche ich nur die heutigen Daten zu ziehen, indem ich ein NSPredicate verwende, das so aussieht:

%Vor%

Ich bekomme keine Ergebnisse. Ich verstehe das, weil ein NSDate Objekt nur die Anzahl der Sekunden oder Millisekunden oder was auch immer seit dem 1. Januar 1970 hält, oder? Das Vergleichen von 1111111111111 und 1111111111112, während am selben Tag, sind zwei verschiedene NSDate -Objekte, die nicht gleich sind.

Also, wie könnte das NSPredicate so formatiert werden, dass es das tut? Ich werde es erraten, zwei NSDate -Objekte zu erstellen: eins, das letzte Nacht um 12 Uhr ist, und ein anderes um 12 Uhr heute Nacht und vergleichen Sie startDate und sehen Sie, ob es zwischen diesen beiden NSDate s ist.

Ich bin irgendwie neu in NSPredicate , also wie konnte das erreicht werden?

    
Robby Cohen 22.02.2012, 19:17
quelle

1 Antwort

24

Verwenden Sie NSCompoundPredicate .

%Vor%

Wo firstDate heute Morgen um 12 Uhr ist und secondDate heute Nacht um 12 Uhr.

P.S. So bekommen Sie heute morgen um 12 Uhr:

%Vor%

Um heute Nacht um 12 Uhr zu kommen, ändern Sie components.day .

    
yuji 22.02.2012, 19:23
quelle