Iphone 如何将布尔值存储到NSArray?

Iphone 如何将布尔值存储到NSArray?,iphone,objective-c,ios,Iphone,Objective C,Ios,所以我将用户设置存储在plist文件中,为此我将数据添加到NSArray中。这种方法对我有效 我的问题是,现在我正在向设置中添加一个UISwitch,我想知道如何将它们的开/关状态存储到阵列中,以便以后可以访问该状态 我正在向数组中添加数据,如下所示: [array addObject: mySwitch.on]; [mySwitch setOn:[array objectAtIndex:0]]; 然后我试着这样设置状态: [array addObject: mySwitch.on]; [

所以我将用户设置存储在plist文件中,为此我将数据添加到NSArray中。这种方法对我有效

我的问题是,现在我正在向设置中添加一个UISwitch,我想知道如何将它们的开/关状态存储到阵列中,以便以后可以访问该状态

我正在向数组中添加数据,如下所示:

[array addObject: mySwitch.on];
[mySwitch setOn:[array objectAtIndex:0]];
然后我试着这样设置状态:

[array addObject: mySwitch.on];
[mySwitch setOn:[array objectAtIndex:0]];

由于
NSArray
只接受
(id)
s(即指向对象的Objective-C指针),因此只能存储对象

在对象中存储
BOOL
值的常用方法是使用
NSNumber
类:

[array addObject:[NSNumber numberWithBool:mySwitch.on]];
要访问它,请抓取
NSNumber
对象并向其发送
boolValue
消息:

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

您使用
NSNumber
存储布尔值并检索它的可能重复项-有点像在将礼物发送给亲戚之前将其包装在盒子中:)有关如何将其与
ui开关一起使用的信息,请参阅我的答案。