2011-01-25 85 views
0

我從Web服務獲取一些標識。如何在NSUserdefaults中驗證字符串

例如:101。

該ID我保存在NSUserdefaults並將該值給該字符串。

現在我需要驗證該字符串,如果該字符串等於0我需要觸發一個動作,如果該值不等於0我需要觸發另一個動作。

因爲我的代碼是這樣的。

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"); 
} 

在控制檯ID在第一時間爲0,字符串是0

如果我檢查第二次id爲0,字符串是100243248.

我沒有得到這是什麼100243248值。

我需要在NSUserdefaults中檢查id。如果該值爲0,我需要觸發一個動作,如果該值不等於零,我需要觸發另一個動作。

我該怎麼辦才能請任何人幫助我。

謝謝你提前。


+0

可能是它在其他地方被修改... – 2011-01-25 07:22:10

回答

1

嘗試做這個:NSString *intString = [NSString stringWithFormat:@"%@", [defaults objectForKey:@"id"]];

你不NSUserDefaults是在你存儲什麼一致的,它看起來像。

希望這會有所幫助!

1

我認爲%d需要int任何你給它的價值。在這種情況下,您將對象傳遞給stringWithFormat。你應該改用[NSString stringWithFormat:@"%@" ...

這裏發生的實際情況是,您打印出由objectForKey返回的對象的指針值。這是第一次這是零(0),第二次你得到100243248這是內存中的東西的內存地址(無論你存儲在NSUserDefaults)。