2010-12-02 13 views
7

Así que estoy almacenando la configuración del usuario en un archivo plist y para hacerlo estoy agregando datos a un NSArray. Este enfoque está funcionando para mí.¿Cómo almacenar un valor booleano en un NSArray?

Mi problema es que ahora estoy agregando un UISwitch a la configuración y me preguntaba cómo almacenar su estado ON/OFF en la matriz para que pueda acceder a ese estado en otro momento?

estoy añadiendo datos a la matriz de la siguiente manera:

[array addObject: mySwitch.on]; 

Entonces estoy tratando de establecer el estado de la siguiente manera:

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

posible duplicado de [NSArray lleno de bool] (http://stackoverflow.com/questions/3889186/nsarray-filled-with-bool) – BoltClock

+1

Usted usa 'NSNumber' para almacenar un valor booleano y recuperarlo - algo así como cómo se envuelve un gif t en una caja antes de enviársela a su pariente :) Vea mi respuesta sobre cómo usarla con su 'UISwitch'. – BoltClock

Respuesta

32

Desde NSArray sólo toma en (id) s (es decir, Objective-C apunta a objetos), solo puedes almacenar objetos.

La forma más común para almacenar un valor BOOL en un objeto es con la clase NSNumber:

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

para acceder a ella, agarrar ese NSNumber objeto y lo envía un mensaje boolValue:

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

gracias de hecho me di cuenta de esto, y funciona perfectamente :) – cgossain

+0

Awesome answer! – Supertecnoboff

Cuestiones relacionadas