2010-09-30 3 views
98

Я могу поместить содержимое NSSet в NSMutableArray, как это:Как вернуть NSMutableArray из NSSet

NSMutableArray *array = [set allObjects]; 

Компилятор жалуется, хотя, потому что [набор AllObjects] возвращает NSArray не NSMutableArray , Как это должно быть исправлено?

ответ

208

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

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

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

NSMutableArray *array = [[set allObjects] mutableCopy]; 
+0

Простите, полностью пропустил это - не уверен, что я думал. – Eiko

+7

Примечание: существует тонкая разница в двух методах, если 'set' -' nil'. –

-3

Для упорядоченного набора использования :

+0

Не существует метода NSSet '- array'. –

0

Я разрешил сбой с помощью метод 210 NSMutableArray в 'addObjectsFromArray' присвоить все NSSet объектов NSMutableArray как:

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

Надеется, что это поможет вам.

Смежные вопросы