2010-12-02 81 views
7

因此,我將用戶設置存儲在plist文件中,並將數據添加到NSArray中。這種方法正在爲我工​​作。如何將布爾值存儲到NSArray?

我的問題是,現在我添加一個UISwitch的設置,我想知道如何將其ON/OFF狀態存儲到數組,以便我可以在以後訪問該狀態?

我將數據添加到陣列像這樣:

[array addObject: mySwitch.on]; 

然後我嘗試設置這樣的狀態:

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

可能[NSArray填充bool]的副本(http://stackoverflow.com/questions/3889186/nsarray-filled-with-bool) – BoltClock 2010-12-02 20:51:56

+1

您使用`NSNumber`來存儲布爾值並檢索它 - 有點像你如何包裝一個gif在將它發送給你的親戚之前,將它放在一個盒子裏:)查看我的回答,瞭解如何將它與你的'UISwitch`一起使用。 – BoltClock 2010-12-02 20:56:42

回答

32

由於NSArray只需要在(id) S(即Objective-C指向對象),你只能存儲對象。

存儲在一個對象中BOOL值的常用方法是用NSNumber類:

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

來訪問它,搶NSNumber對象並將其發送一個boolValue消息:

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