如何在NSUserdefaults中存储UISegmentedControle状态

时间:2010-04-12 21:17:57

标签: iphone nsuserdefaults uisegmentedcontrol

问题是取消选择de selectedSegmentIndex:“UISegmentedControlNoSegment”别名“-1”。

其他状态(0,1,2等),我可以存储为整数并使用

进行检索
carTypeSegmentedControl.selectedSegmentIndex = [defaults integerForKey:@"typeOfCar"];

但是-1不是NSInteger。

我还尝试从NSUserdefaults中删除Integer,但请求将返回“0”,这是不可接受的。

那么,还有另一种简单的方法吗?

3 个答案:

答案 0 :(得分:2)

-1是一个整数,它是一个负整数。您应该能够将其存储在NSUserDefaults中。

答案 1 :(得分:2)

您需要使用NSNumber,它是常见数字和布尔类型值的对象表示,例如设置:

[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:-1] forKey:kDefaultCarSegmentedControlState];

要检索:

NSInteger defaultCarSegmentedControlSelectedIndex = [[[NSUserDefaults standardUserDefaults] objectForKey:kDefaultCarSegmentedControlState] intValue];

答案 2 :(得分:0)

你是对的Ben,-1是一个整数。它毕竟是存储的。我做了一个NSLog。愚蠢我没试过。我没有找到明确的文件。

所以我的问题可能就在某处。

我猜你的答案也有效,Alex。

感谢您的帮助