2011-08-08 6 views
0

私はNSUserDefaultで数値パラメータを格納する必要があり、このパラメータはデフォルト1 ようでなければならないので、私はこのコードを書く:NSUserDefaultsとregisterDefault、標準的な動作ですか?

NSNumber *one = [NSNumber numberWithInt:100];  
NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; 

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 
         one,@"my-param", 
         nil]; 

[def registerDefaults:dict]; 

このパラメータはので、私はそれが正しくだと確認することができIBのチェックボックスの上にバインドを持っています私は私のアプリを起動するときに私は状態 "オン"のチェックボックスを参照してください。他の側では

は私がプログラムによってこの値をチェックしなければならないので...私は何かの操作を行います。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSInteger my_param = [defaults integerForKey:@"my-param"]; 

を私は以来、ユーザーが値を私のように設定され、この関数の戻り値を設定されていないことを除外しました私の驚いたことに私は値が決してユーザーによって設定されていない場合、0を返していることがわかりました:これはひどいことを理解することができます:Pこれは "0"これは、ユーザーが設定していない値の結果であることによって得られます...この状況を管理するコードをどのように書くことができますか?

以下、次のように使用NSUserDefaultの整数値を設定するには:

NSInteger lInteger = 10; 

[[NSUserDefaults standardUserDefaults] setInteger:lInteger forKey:@"integerkey"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

そして、そのNSInteger値を使用するために、次のようあなたは、単に直接使用することができますNSUserDefaultsの数値を格納するために

答えて

2

あなたのプロジェクトのどこでも以下のように使用してください:

NSInteger linteger = [[NSUserDefaults standardUserDefaults] integerForKey:@ "integerkey"];

私はあなたの質問を正確に理解できませんでしたが、とにかく私はこのコードがあなたを助けるかもしれないと思います。

+0

上記のコードが役に立つ場合は、私に投票してください – sumanthkodi

関連する問題