2010-09-30 8 views
98

Ich bin in der Lage, den Inhalt eines NSSet in eine NSMutableArray so zu setzen:Wie ein NSMutableArray von einem NSSet zurück

NSMutableArray *array = [set allObjects]; 

Der Compiler beschwert sich aber, weil [gesetzt allObjects] ein NSArray kein kehrt NSMutableArray . Wie sollte das behoben werden?

Antwort

208

Da -allObjects ein Array zurückgibt, können Sie eine veränderbare Version mit erstellen:

NSMutableArray *array = [NSMutableArray arrayWithArray:[set allObjects]]; 

Oder alternativ, wenn Sie das Objekt Eigentum behandeln wollen:

NSMutableArray *array = [[set allObjects] mutableCopy]; 
+0

Sorry, total vermisst das - nicht sicher, was ich dachte. – Eiko

+7

Hinweis: Es gibt einen feinen Unterschied zwischen den beiden Methoden, wenn 'set'' nil' ist. –

-3

Für eine geordnete Menge Einsatz :

NSArray *myArray = [[myOrderedSet array] mutableCopy]; 
+0

Es scheint keine NSSet '- Array'-Methode zu geben. –

0

Ich löste Absturz mit NSMutableArray der Methode 'addObjectsFromArray' zuweisen alle NSSet Objekte NSMutableArray wie:

[mutableArray addObjectsFromArray:[cg_Schedule.schedule_Days allObjects]]; 

hoffen, dass dies Ihnen hilft.