2010-09-30 28 views
98

soy capaz de poner el contenido de un NSSet en un NSMutableArray así:Cómo devolver un NSMutableArray de un NSSet

NSMutableArray *array = [set allObjects]; 

El compilador se queja, porque aunque [establecer allObjects] devuelve un NSArray no un NSMutableArray . ¿Cómo debería ser esto arreglado?

Respuesta

208

Desde -allObjects devuelve una matriz, puede crear una versión mutable con:

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

O, alternativamente, si desea manejar la propiedad de objetos:

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

Lo siento, lo extrañé por completo, no estoy seguro de lo que estaba pensando. – Eiko

+7

Nota: hay una diferencia sutil en los dos métodos si 'set' es' nil'. –

-3

Para un uso conjunto ordenado :

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

No parece haber un método NSSet '- array'. –

0

Resolvió fallar utilizando método 210 de NSMutableArray 'addObjectsFromArray' para asignar todos los NSSet objetos a NSMutableArray como:

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

Esperamos que esto le ayuda.

Cuestiones relacionadas