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?

noeud ninja
la source

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];
dreamlax
la source
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.

Irfan
la source
-3

Pour un ensemble commandé, utilisez:

NSArray *myArray = [[myOrderedSet array] mutableCopy];
Dustin
la source
Il ne semble pas y avoir de - arrayméthode NSSet .
Sophie Alpert