1

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

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

carTypeSegmentedControl.selectedSegmentIndex = [defaults integerForKey:@"typeOfCar"];

但是 -1 不是 NSInteger。

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

那么,还有其他简单的方法吗?

4

3 回答 3

2

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

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

要检索:

NSInteger defaultCarSegmentedControlSelectedIndex = [[[NSUserDefaults standardUserDefaults] objectForKey:kDefaultCarSegmentedControlState] intValue];
于 2010-04-12T22:20:19.880 回答
2

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

于 2010-04-12T21:21:21.037 回答
0

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

所以可能我的问题出在其他地方。

我想你的答案也有效,亚历克斯。

感谢您的帮助

于 2010-04-13T06:15:39.040 回答