Como retornar um NSMutableArray de um NSSet


104

Posso colocar o conteúdo de um NSSetem um NSMutableArraycomo este:

NSMutableArray *array = [set allObjects];

O compilador reclama, porém, porque [set allObjects] retorna um NSArraynão um NSMutableArray. Como isso deve ser corrigido?

Respostas:


218

Como -allObjectsretorna uma matriz, você pode criar uma versão mutável com:

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

Ou, alternativamente, se você quiser lidar com a propriedade do objeto:

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

7
Nota: há uma diferença sutil nos dois métodos se setfor nil.
Zach Langley

-1

Resolvi a falha usando o método 'addObjectsFromArray' de NSMutableArray para atribuir todos os objetos NSSet a NSMutableArray como:

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

Espero que isso ajude você.


-3

Para um conjunto encomendado, use:

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

Não parece haver um - arraymétodo NSSet .
Sophie Alpert
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.