So geben Sie ein NSMutableArray von einem NSSet zurück

104

Ich kann den Inhalt eines NSSetin ein NSMutableArraysolches setzen:

NSMutableArray *array = [set allObjects];

Der Compiler beschwert sich jedoch, weil [set allObjects] ein NSArraynicht an zurückgibt NSMutableArray. Wie soll das behoben werden?

Knoten Ninja
quelle

Antworten:

218

Da -allObjectsein Array zurückgegeben wird, können Sie eine veränderbare Version erstellen mit:

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

Oder alternativ, wenn Sie den Objektbesitz behandeln möchten:

NSMutableArray *array = [[set allObjects] mutableCopy];
Dreamlax
quelle
7
Hinweis: Es gibt einen subtilen Unterschied zwischen den beiden Methoden, wenn dies der Fall setist nil.
Zach Langley
-1

Ich habe den Absturz mithilfe der NSMutableArray- Methode 'addObjectsFromArray' behoben, um NSMutableArray alle NSSet- Objekte wie folgt zuzuweisen :

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

Hoffe das wird dir helfen.

Irfan
quelle
-3

Für ein bestelltes Set verwenden Sie:

NSArray *myArray = [[myOrderedSet array] mutableCopy];
Dustin
quelle
Es scheint keine NSSet- - arrayMethode zu geben.
Sophie Alpert