2010-09-30 19 views
98

Je suis en mesure de mettre le contenu d'un NSSet dans un NSMutableArray comme celui-ci:Comment retourner un NSMutableArray d'un NSSet

NSMutableArray *array = [set allObjects]; 

Le compilateur se plaint mais parce que [set allObjects] retourne un NSArray pas NSMutableArray . Comment cela devrait-il être réparé?

Répondre

208

Depuis -allObjects retourne un tableau, vous pouvez créer une version mutable avec:

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

Ou encore, si vous voulez gérer la propriété de l'objet:

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

Désolé, totalement raté cela - je ne suis pas sûr de ce que je pensais. – Eiko

+7

Remarque: il existe une différence subtile entre les deux méthodes si 'set' est' nil'. –

-3

Pour une utilisation ensemble ordonné :

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

Il ne semble pas y avoir de méthode NSSet '- array'. –

0

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

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

Espérons que cela vous aide.