Ich verwende einen NSSortDescriptor, um NSDate-Objekte in aufsteigender Reihenfolge zu sortieren. Allerdings brauche ich keine Null-Termine, die am Ende der Liste stehen, während sie im Moment ganz oben stehen.NSSortDescriptor und keine Werte
Antwort
Am Ende habe ich entschieden, dass Null-Werten ist keine gute Idee, und wenn ich will, was Nullwert waren Um am Ende der aufsteigenden Liste zu erscheinen, sollte ich die Daten auf [NSDate distantFuture] setzen und sie prüfen, bevor sie angezeigt werden. Es stellt sich heraus, dass dies auch innerhalb der Anwendungen mehr semantischen Sinn macht.
Natürlich sollte ich
initWithKey:ascending:selector:
verwenden und meine eigenen Vergleichswähler schreiben
Sieht so aus, als ob Sie bereits eine Lösung haben, aber für alle anderen, die weiterhin nil NSDates verwenden möchten, und unten haben, verwende ich den folgenden Code, wo ich absteigend sortiere, und dann die Reihenfolge der gesendeten Objekte umkehren der Vergleich.
_sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dueDate"
ascending:NO
comparator:^NSComparisonResult(id obj1, id obj2) {
return [obj2 compare:obj1];
}];
hat der Vergleich kein undefiniertes Verhalten, wenn obj1 null ist und obj2 ein Datum ist? –
- 1. NSSortDescriptor und to-many Beziehungen
- 2. Transient sectionNameKeyPath & NSSortDescriptor NSFetchedResultsController
- 3. NSMutableArray mit NSSortDescriptor sortieren
- 4. NSSortDescriptor wird nicht aufgerufen
- 5. die Art und Weise steuern sortiert NSSortDescriptor Null Werte in Core Data
- 6. NSSortDescriptor in Swift
- 7. NSSortDescriptor benutzerdefinierte alphanumerische Reihenfolge
- 8. NSSortDescriptor nicht alphabetisch
- 9. Variadische Vorlagen und keine Werte
- 10. NSSortDescriptor zum Entfernen der "Präfix"
- 11. NSSortDescriptor Auswertung aufsteigende Zahlen (Swift)
- 12. NSSortDescriptor nach Entitätsindex sortieren Swift
- 13. pandas query Keine Werte
- 14. Html.Dropdownlistfor keine Werte gesetzt
- 15. Kann keine Werte drucken
- 16. SQLite keine Werte einfügen
- 17. Javascript nimmt keine Werte
- 18. NSSortDescriptor auf transientes Attribute für NSFetchedResultsController
- 19. Numerische Sortierung mit NSSortDescriptor für NSFetchedResultsController
- 20. ungestützter NSSortDescriptor (Komparatorblöcke wird nicht unterstützt)
- 21. NSArray von NSDictionaries mit NSSortDescriptor nicht funktioniert
- 22. NSSortDescriptor Sortieren von Daten im Zufallsformat
- 23. NSSortDescriptor-Sortierung mit NSDate in Swift
- 24. NSSortDescriptor sortiert ganze Zahlen nicht korrekt
- 25. Welcher Sortieralgorithmus steht hinter einem NSSortDescriptor?
- 26. Hilfe Sortierung eines NSArray über zwei Eigenschaften (mit NSSortDescriptor?)
- 27. Keine Werte nach Speichern speichern
- 28. Magento Modell speichert keine Werte
- 29. Checkbox erhält keine Werte richtig
- 30. view.postUrl() Keine $ _POST-Werte senden
Genau. Verwenden Sie benutzerdefinierte Logik, um keine Werte zu verarbeiten, und rufen Sie dann [myNSDateInstance compare: secondDate]; wenn das zweite Datum nicht null ist. –
Das wird nicht helfen, da 'compare:' an die NSDate-Instanzen gesendet wird; Wenn "nil" den Empfänger beendet, wird das Ergebnis "NSOrderedSame" sein, und wenn der Empfänger nicht "nil" ist, aber das Argument ist, glaube ich nicht, dass ein bestimmtes Ergebnis garantiert ist. –
Dies funktioniert leider nicht beim Abrufen von Core Data. – pkamb