2016-04-22 14 views
0

In meinem Projekt habe ich Array von einigen benutzerdefinierten Objekten. Jedes Objekt wird im folgenden Format sein.Sortieren Array mit nsset Schlüssel Wert

{ 
enrollementStatus = 0; 
enrollementType = 1; 
titles =  (
    "0x7b316eb0 <x-coredata://6F003DDD-D6CD-4514-B565-FEF9203F188C/CourseText/p246>" 
);} 

In diesem Objekt Titel ist nsset type.while drucken Objekt an, wie

("<CourseText: 0x7b316f60> 
    (entity: CourseText; id: 0x7b316eb0 data: 
    {\n course = \"0x7aa69870 <x-coredata://6F003DDD-D6CD-4514-B565-FEF9203F188C/Course/p11>\";\n 
    descr = \"(null)\";\n 
    lang = \"en-US\";\n 
     title = CSDFFFFF;\n})" 

aussehen werde ich dieses Array auf thistitles sortieren wollen (NSSet Objekt) Titel (in alphabetischer Reihenfolge). Bitte geben Sie mir einen Vorschlag

+0

aber es ist eine Art von nsset Objekt object.That nur enthält „Titel“ – Madhumitha

Antwort

1

Sie können die NSSet sortieren und erstellen mit einem sortiert NSArray NSSortDescriptor

NSSortDescriptor *titleSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES]; 
NSArray *sortedObjects = [titles sortedArrayUsingDescriptors:@[titleSortDescriptor]]; 

Edit 1 aktualisiert Antwort per Kommentare:

Wie pro meine Ihre Objektstruktur zu verstehen, ist so etwas wie dieses:

  1. Array von YourCustomObject, wo YourCustomObject ein NSSet enthält genannt Titel.
  2. Titel enthalten ein Objekt der Klasse CourseText
  3. CourseText eine Eigenschaft Titel
  4. Sie wollen sortieren Array of YourCustomObject hat auf der Grundlage der Titel Eigentum von CourseText.

Hierfür können Sie sortedArrayUsingComparator Methode von NSArray verwenden.

//arrayOfCustomObjects is the array that contains your objects to be sorted 
//Replace YourCustomObject with the actual class of the objects 
NSArray* sortedArray = [arrayOfCustomObjects sortedArrayUsingComparator:^NSComparisonResult(YourCustomObject* obj1, YourCustomObject* obj2) { 

    NSString* title1 = ((CourseText*)obj1.titles.anyObject).title; 
    NSString* title2 = ((CourseText*)obj2.titles.anyObject).title; 

    return [str1 compare:str2]; 

}]; 
+0

hier, was ist [Titel ...], was ich gegeben habe? – Madhumitha

+0

Titel ist der 'NSSet', der die Objekte enthält, die Sie sortieren möchten. Sie können dies durch den tatsächlichen Set-Namen ersetzen. – UditS

+0

bitte geben Sie mir ein Codebeispiel..ich konnte – Madhumitha