NSArray Sortieren
Ich habe eine NSArray von Objekten.
Diese Objekte haben ein int-Attribut als "Distanz". Ich möchte Sortieren meine array-Distanz.
Könnte mir bitte jemand sagen wie das geht ? Ich kann nicht verstehen, wie die sortUsingSelector oder sortUsingDescriptor Methoden arbeiten...
Dank
InformationsquelleAutor Yoot | 2010-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie sind mit einem NSMutableArray, weil ein NSArray ist unveränderlich.
Beim Sortieren etwas aus, Sie wollen das Endergebnis zu so angeordnet werden wie
Wie definieren Sie diese
<=
? Es gibt 3 Lösungen, die in ObjC.1.
-sortUsingSelector:
[arr sortUsingSelector:@selector(foo:)]
bedeutet, dass die Elemente, die verglichen werden sollen, wie*Zum Beispiel das Sortieren einer Liste von strings Fall-unempfindlich, Sie verwenden
[arr sortUsingSelector:@selector(caseInsensitiveCompare:)]
.2.
-sortUsingFunction:context:
Dies ist ähnlich zu
-sortUsingSelector:
, aber es verwendet eine Funktion pointer als input.[arr sortUsingFunction:funcptr context:ctx]
bedeutet, dass die Elemente, die verglichen werden, als3.
-sortUsingDescriptors:
Dies ist der komplizierteste. Es nimmt eine Liste von NSSortDescriptors die Beschreibung der erwarteten Reihenfolge der Eigenschaften. Ein einfaches Beispiel:
den Deskriptor erzählt die sort-routine zum "Sortieren, indem Sie die Taste
distance
in aufsteigender Reihenfolge".Angenommen, es gibt 2 Schlüssel, Ganzzahlen
x
aufsteigend, dann und Streichery
absteigend, dann schreiben Sieund so weiter.
Hinweis: * Eigentlich sollte man nur -1, 0 oder 1.
NSOrderedDescending
,NSOrderedSame
oderNSOrderedAscending
.+1, außer [NSArray arrayWithObjects:x, y, nil]]; sollte wohl sein, dx, dy, wie die Objekte übergeben werden, um das array.
Was ist, wenn das array nicht über die Entfernung Eigenschaft, nur die Breite und Länge und Sie haben eine Methode, die berechnet, Distanz von der userLocation zu jedem lat/long Koordinate. Was muss ich tun, um das Sortieren der array dann?
InformationsquelleAutor kennytm
Finnaly fand ich heraus, wie das geht :
nach @implementation :
Dann überall dort, wo Sie brauchen, um Sortieren Sie Ihre NSArray :
InformationsquelleAutor Yoot