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

あなたは正しいベンです。-1 は完全に整数です。そしてやっぱり保管です。その上で NSLog を実行しました。愚かな私はそれを試しませんでした。それに関する明確な文書は見つかりませんでした。

したがって、おそらく私の問題はどこかにあるでしょう。

あなたの答えもうまくいくと思います、アレックス。

助けてくれてありがとう

于 2010-04-13T06:15:39.040 に答える