Как вернуть 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]];

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.