Comment renvoyer un NSMutableArray à partir d'un NSSet


104

Je suis capable de mettre le contenu d' NSSetun NSMutableArraycomme ceci:

NSMutableArray *array = [set allObjects];

Le compilateur se plaint cependant parce que [set allObjects] renvoie un NSArraynot an NSMutableArray. Comment résoudre ce problème?

Réponses:


218

Puisque -allObjectsrenvoie un tableau, vous pouvez créer une version mutable avec:

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

Ou, alternativement, si vous souhaitez gérer la propriété de l'objet:

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

7
Remarque: il existe une différence subtile entre les deux méthodes si setc'est nil.
Zach Langley

-1

J'ai résolu le plantage en utilisant la méthode de NSMutableArray 'addObjectsFromArray' pour affecter tous les objets NSSet à NSMutableArray comme:

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

J'espère que cela vous aidera.


-3

Pour un ensemble commandé, utilisez:

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

Il ne semble pas y avoir de - arrayméthode NSSet .
Sophie Alpert
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.