Как вернуть NSMutableArray из NSSet

104

Я могу поместить содержимое NSSetв NSMutableArrayследующее:

NSMutableArray *array = [set allObjects];

Однако компилятор жалуется, потому что [set allObjects] возвращает NSArrayне файл NSMutableArray. Как это исправить?

узел ниндзя
источник

Ответы:

218

Поскольку -allObjectsвозвращает массив, вы можете создать изменяемую версию с помощью:

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

Или, в качестве альтернативы, если вы хотите обрабатывать право собственности на объект:

NSMutableArray *array = [[set allObjects] mutableCopy];
мечта
источник
7
Примечание: есть небольшая разница в двух методах, если setесть nil.
Зак Лэнгли,
-1

Я решил врезаться с помощью NSMutableArray по методу «addObjectsFromArray» присвоить все NSSet объекты в NSMutableArray как:

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

Надеюсь, это поможет вам.

Ирфан
источник
-3

Для заказанного набора используйте:

NSArray *myArray = [[myOrderedSet array] mutableCopy];
Дастин
источник
Похоже, что - arrayметода NSSet не существует .
Софи Альперт