2010-12-02 8 views
7

Donc, je stocke les paramètres de l'utilisateur dans un fichier plist et pour ce faire, j'ajoute des données à un NSArray. Cette approche fonctionne pour moi.Comment stocker une valeur booléenne dans un NSArray?

Mon problème est que maintenant j'ajoute un UISwitch aux paramètres et je me demandais comment stocker leur état ON/OFF à la matrice afin que je puisse accéder à cet état plus tard?

J'ajouter des données au tableau comme ceci:

[array addObject: mySwitch.on]; 

Je suis en train de définir l'état comme celui-ci:

[mySwitch setOn:[array objectAtIndex:0]]; 
+0

possible duplication de [NSArray rempli de booléen] (http://stackoverflow.com/questions/3889186/nsarray-filled-with-bool) – BoltClock

+1

Vous utilisez 'NSNumber' pour stocker une valeur booléenne et le récupérer - un peu comme la façon dont vous envelopper un gif t dans une boîte avant de l'envoyer à votre parent :) Voir ma réponse pour savoir comment l'utiliser avec votre «UISwitch». – BoltClock

Répondre

32

Depuis NSArray ne prend en (id) s (c.-à- Objective-C pointeurs vers des objets), vous ne pouvez stocker que des objets.

La voie commune pour stocker une valeur BOOL dans un objet est avec la classe NSNumber:

[array addObject:[NSNumber numberWithBool:mySwitch.on]]; 

Pour y accéder, saisir cet objet NSNumber et l'envoyer un message boolValue:

[mySwitch setOn:[[array objectAtIndex:0] boolValue]]; 
+0

merci j'ai effectivement remarqué cela, et ça fonctionne parfaitement :) – cgossain

+0

Super réponse! – Supertecnoboff

Questions connexes