2010-04-12 97 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。愚蠢的我沒有嘗試。我沒有找到明確的文件。

所以可能我的問題是某處埃爾斯。

我想你的答案也適用,亞歷克斯。

謝謝你的幫助