Gibt es eine Möglichkeit NSDate
in CoreData
abzufragen. Zum Beispiel, wenn ich eine Entität mit dem höchstenNSDate
Wert möchte? Ich sehe, dass NSExpression
"max:" nimmt nur eine NSNumber
.Max NSDate in Kerndaten abfragen
Antwort
Sie können SQL tatsächlich fragen nur für diesen Wert, nicht das Objekt mit diesem Wert:
NSExpression *date = [NSExpression expressionForKeyPath:@"date"];
NSExpression *maxDate = [NSExpression expressionForFunction:@"max:"
arguments:[NSArray arrayWithObject:maxDate]];
NSExpressionDescription *d = [[[NSExpressionDescription alloc] init] autorelease];
[d setName:@"maxDate"];
[d setExpression:maxSalaryExpression];
[d setExpressionResultType:NSDateAttributeType];
[request setPropertiesToFetch:[NSArray arrayWithObject:d]];
NSError *error = nil;
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
if (objects == nil) {
// Handle the error.
} else {
if (0 < [objects count]) {
NSLog(@"Maximum date: %@", [[objects objectAtIndex:0] valueForKey:@"maxDate"]);
}
}
genauer unter Abrufen von Managed Objects -> Fetching Spezifische Werte in der Dokumentation Coredata.
oder
Parfümmarkt eine Abfrage, bestellt am Feld Datum DESCENDING und mit setFetchLim es: 1. Es ist nicht perfekt, aber zumindest hat es funktioniert.
Sie können es mit
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"tablename"];
fetchRequest.fetchLimit = 1;
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"yourDate" ascending:NO]];
NSError *error = nil;
id person = [managedObjectContext executeFetchRequest:fetchRequest error:&error].firstObject;
erhalten Sie können dies in SQLite-- direkt tun, ohne alles zu holen und dann filtert das Ergebnis, und ohne die Komplexität NSExpression
.
Um das ein Objekt zu erhalten, das den max Datum hat, so etwas wie (Entitätsname Entity
und Datum Attribut timeStamp
vorausgesetzt):
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"timeStamp = [email protected]"];
fetchRequest.predicate = predicate;
die holen Sie. Sie erhalten (höchstens) ein Ergebnis, das die Instanz mit dem maximalen Datum ist.
Wenn Sie nur das Datum zu bekommen und nicht das gesamte verwaltete Objekt, fügen Sie diese, bevor Sie die holen:
fetchRequest.resultType = NSDictionaryResultType;
fetchRequest.propertiesToFetch = @[ @"timeStamp" ];
- 1. Wie man ein Bild in Kerndaten speichert
- 2. swift: Datensätze in Kerndaten überprüfen
- 3. String in NSDate Swift2
- 4. NSDate Ergebnisse von - (NSDate *) DatumFromComponents: (NSDateComponents *) Comps
- 5. Vergleichen eines NSDate mit [NSDate date]
- 6. Gruppieren nach Wochentagen mit Kerndaten
- 7. Geordnete Sätze und Kerndaten (NSOrderedSet)
- 8. Max-Wert mit gespeicherten Prozeduren abrufen und Abfragen verbinden
- 9. Wie kann man mehrere Zeilen mit einem MAX abfragen?
- 10. Beziehung in Kerndaten als NSSet
- 11. ein Objekt in Kerndaten löschen
- 12. Speichern von Daten in Kerndaten
- 13. NSDate Nullwert
- 14. Kerndaten, NSPredate und to-many Schlüssel
- 15. @media Abfragen in CSS
- 16. Problem mit NSDate in NSUserDefaults
- 17. Wie NSDate in Swift verspotten?
- 18. Konvertieren formatiertes Datum in NSDate
- 19. EXC_BAD_ACCESS in NSDate Formatierung Erweiterung
- 20. UIBezierPath Persistenz mit Kerndaten
- 21. Kerndaten Multithread mit
- 22. NSTextView von Kerndaten unterstützt
- 23. Kerndaten holen Ergebnisse
- 24. Editierbare TableView mit Kerndaten
- 25. Kerndaten: 3 Tabelle beitreten?
- 26. Relationship Fehler mit Kerndaten
- 27. Lokalisierung mit Kerndaten
- 28. Kerndaten Thread- und Sperrkonfliktprobleme
- 29. Kerndaten "Nicht sichern" -Flag
- 30. Spezielle Kerndaten holen
Sie fech Objekt mit max Datum aus einer Einheit wollen? –