Як повернути NSMutableArray з NSSet


104

Я вмію вмістити такий вміст NSSetу NSMutableArrayтакий:

NSMutableArray *array = [set allObjects];

Компілятор скаржиться, оскільки [set allObjects] повертає NSArrayне an 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.