2011-01-25 8 views
0

WebサービスからIDを取得しています。NSUserdefaultsで文字列を検証する方法

例:101。

私はNSUserdefaultsに保存しておいて、その値を文字列に与えます。

私はその文字列が0に等しい場合のように私は1つのアクションを発生させる必要があるようにその文字列を検証する必要があり、その値が0でない場合、別のアクションを起動する必要があります。

私のコードはこのようです。コンソールのIDで初めて

NSLog(@"id is%@",[defaults objectForKey:@"id"]); 
NSString *intString = [NSString stringWithFormat:@"%d", [defaults objectForKey:@"id"]]; 

NSLog(@"string %@",intString); 
if ([intString isEqualToString:@"0"]) { 
    NSLog(@"yes it is 0"); 
} 
else { 
    NSLog(@"No it not eqal to zero"); 
} 

が0で、文字列は0

であると私は二度目IDが0でチェックすると、文字列が100243248.

私は何これを取得していないです100243248値。

NSUserdefaultsでIDを確認する必要があります。その値が0の場合、私は1つのアクションを起動する必要があり、その値がゼロに等しくない場合、別のアクションを起動する必要があります。

どのようにすればいいですか私を助けてください。

ありがとうございます。


+0

他の場所で変更されている可能性があります... –

答えて

1

代わりにこれをやってみてください。NSString *intString = [NSString stringWithFormat:@"%@", [defaults objectForKey:@"id"]];

あなたはNSUserDefaultsに格納するものでは一致しているしていない、それは次のようになります。

希望すると便利です。

1

私は%dintあなたがそれを与えるものの値を取ると思います。この場合、オブジェクトstringWithFormatに渡しています。代わりに[NSString stringWithFormat:@"%@" ...を使用してください。

ここで実際に起こっていることは、objectForKeyによって返されたオブジェクトのポインタ値を出力していることです。初めてこれはゼロ(0)です.2回目にはメモリ内の何らかのメモリアドレス(NSUserDefaultsに格納されているもの)の100243248が得られます。

関連する問題