2016-04-08 31 views
-2

Ich habe ein fruit Objekt in swift mitSwift - Sortierung NSMutableArray mit Objekten darin

var title: String? 
var desc: String? 

Variablen

Ich habe es in einem fruitsArray, die ein NSMutableArray ist.

Ich möchte diese Fruchtobjekte alphabetisch nach ihrem Titel sortieren. Ich muss das sowohl aufsteigend als auch absteigend machen.

Ich habe versucht, Sie folgendermaßen vorgehen:

NSSortDescriptor *sortDescriptor = 
     [NSSortDescriptor sortDescriptorWithKey:@"title" 
    ascending:YES 
    selector:@selector(caseInsensitiveCompare:)]; 
    [fruitsArray sortedArrayUsingDescriptors:@[sortDescriptor]]; 

Aber es funktioniert nicht funktionieren, nur Haufen von Fehlern.

Wie mache ich das?

Vielen Dank im Voraus Freunde.

+0

Oder vielleicht eine bessere Passform: http://stackoverflow.com/questions/24130026/ swift-how-to-sort-array-of-custom-objects-by-property-Wert – luk2302

+0

@ luk2302 Nr. Ich habe mir das angesehen. –

+3

Wissen Sie, dass das von Ihnen bereitgestellte Codebeispiel in Objective-C enthalten ist? – Wain

Antwort

0

Sie haben sort Funktion mit einem Block zu verwenden:

struct Fruit { 
    var title: String 
    var desc: String 
} 

var fruits = [Fruit]() 
fruits.append(Fruit(title: "a", desc: "b")) 
fruits.append(Fruit(title: "c", desc: "d")) 


let sorted = fruits.sort() { $0.title > $1.title } 
sorted 
+0

Perfekt. Danke für die Lösung! :) –

0

sollte es sortUsingDescriptors sein: nicht sortedArrayUsingDescriptors:

+0

Sie könnten ihm sagen, was der Unterschied ist. Jeder hat seine Verwendung. – gnasher729

Verwandte Themen