2010-04-12 96 views
1

问题是何时取消selectSegmentIndex:“UISegmentedControlNoSegment”别名“-1”。如何在NSUserdefaults中存储UISegmentedControle状态

的其他状态(0,1,2,等),我可以存储为整数和与

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

检索但是-1是没有NSInteger的。

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

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

回答

2

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

+0

同上。也许OP会令NSInteger与NSUInteger混淆? – Amagrammer 2010-04-12 22:27:19

+0

如果将-1作为unsigned int进行检索,则OP可能会报告返回MAX_INT。 – 2010-04-12 22:29:38

2

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

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

要检索:

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

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

所以可能我的问题是某处埃尔斯。

我想你的答案也适用,亚历克斯。

谢谢你的帮助