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ć?

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

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.


-3

Do zamówionego zestawu użyj:

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

Wygląda na to, że nie ma - arraymetody NSSet .
Sophie Alpert
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.