2011-01-25 109 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)。