sort ordenar array alphabetically arrays swift sorting parse-platform nsdate

arrays - array - Ordenar matriz de objetos personalizados por fecha swift



swift array sort (3)

Tengo un objeto personalizado "Reunión". Estoy agregando todos los objetos en una matriz. Lo que quiero hacer es ordenar la matriz de Meeting.meetingDate.

También estoy usando Parse, tengo dos consultas y pongo los resultados en una matriz.

Puedo agregar los datos a "meetingData", pero no ordenarlos.

¿Alguien puede ayudarme con esto?

Así que mi matriz es:

var meetingsData = [Meeting]()

La clase de la reunión es:

public class Meeting: PFObject, PFSubclassing { @NSManaged public var meetingTitle: String? @NSManaged public var meetingLocation: String? @NSManaged public var meetingNotes: String? @NSManaged public var meetingDuration: String? @NSManaged public var createdBy: User? @NSManaged public var meetingTime: NSDate? @NSManaged public var meetingDate: NSDate? }

El contenido de la matriz es así:

<Meeting: 0x125edd040, objectId: xIqx7MoRd6, localId: (null)> { createdBy = "<PFUser: 0x125d627c0, objectId: RKCWJRj84O>"; meetingDate = "2015-08-29 17:07:12 +0000"; meetingDuration = "2 hours 2 mins"; meetingLocation = 4th Floor; meetingNotes = With Investors; meetingTime = "2015-08-24 09:00:17 +0000"; meetingTitle = Meeting with Investors; } <Meeting: 0x125ed95f0, objectId: tz4xx5p9jB, localId: (null)> { createdBy = "<PFUser: 0x125d627c0, objectId: RKCWJRj84O>"; meetingDate = "2015-08-23 23:00:00 +0000"; meetingDuration = "1 hour"; meetingLocation = "Emirates Stadium, London"; meetingNotes = "Football"; meetingTime = "2000-01-01 20:00:00 +0000"; meetingTitle = "Liverpool V Arsenal"; } <Meeting: 0x125ed95f0, objectId: tz4xx5p9jB, localId: (null)> { createdBy = "<PFUser: 0x125d627c0, objectId: RKCWJRj84O>"; meetingDate = "2015-09-23 23:00:00 +0000"; meetingDuration = "1 hour"; meetingLocation = "Library"; meetingNotes = "Dev Team"; meetingTime = "2000-01-01 10:00:00 +0000"; meetingTitle = "Code Review"; }

He intentado hacer esto Swift cómo ordenar la matriz de objetos personalizados por valor de propiedad pero no funciona

Gracias por adelantado


Para Swift 3

meetingsData.sort(by: { $0.meetingDate.compare($1.meetingDate) == .orderedAscending})

O

Como las fechas ahora son directamente comparables en Swift 3 , por ejemplo.

let firstDate = Date() let secondDate = Date() if firstDate < secondDate { } else if firstDate == secondDate { } else if firstDate > secondDate { }


Para Swift 4

Ordenar por marca de tiempo

values.sorted(by: { $0.meetingDateTimestamp > $1. meetingDateTimestamp})


NSDate no se puede comparar con < directamente. Puede usar el método de compare NSDate , como en el siguiente código:

meetingsData.sort({ $0.meetingDate.compare($1.meetingDate) == .OrderedAscending })

En el código anterior, puede cambiar el orden de clasificación usando la enumeración NSComparisonResult , que en Swift se implementa de la siguiente manera:

enum NSComparisonResult : Int { case OrderedAscending case OrderedSame case OrderedDescending }

Espero que esto te ayude.