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?

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];

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.


-3

Für ein bestelltes Set verwenden Sie:

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

Es scheint keine NSSet- - arrayMethode zu geben.
Sophie Alpert
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.