Jak zwrócić NSMutableArray z NSSet

104

Jestem w stanie umieścić zawartość an NSSetw NSMutableArraytaki sposób:

NSMutableArray *array = [set allObjects];

Kompilator skarży się jednak, ponieważ [set allObjects] zwraca NSArraynot an NSMutableArray. Jak to naprawić?

węzeł ninja
źródło

Odpowiedzi:

218

Ponieważ -allObjectszwraca tablicę, możesz utworzyć zmienną wersję za pomocą:

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

Lub, jeśli chcesz zająć się własnością obiektu:

NSMutableArray *array = [[set allObjects] mutableCopy];
dreamlax
źródło
7
Uwaga: istnieje subtelna różnica w obu metodach, jeśli settak nil.
Zach Langley
-1

Postanowiłem upaść przy użyciu NSMutableArray za metodę „addObjectsFromArray” przypisać wszystko NSSet obiektów do NSMutableArray jak:

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

Mam nadzieję, że to ci pomoże.

Irfan
źródło
-3

Do zamówionego zestawu użyj:

NSArray *myArray = [[myOrderedSet array] mutableCopy];
Dustin
źródło
Wygląda na to, że nie ma - arraymetody NSSet .
Sophie Alpert