如何在NSUserdefaults中验证字符串

时间:2011-01-25 07:01:20

标签: iphone

我从网络服务中获得了一些内容。

例如:101

我将保存在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");
}

第一次在console id中为0,string为0

如果我第二次检查id为0,则字符串为100243248。

我没有得到这100243248的价值。

我需要在NSUserdefaults中检查ID。如果该值为0,我需要触发一个动作,如果该值不等于零,我需要触发另一个动作。

我该怎么办才能帮助我。

提前感谢你。


2 个答案:

答案 0 :(得分:1)

请尝试改为:NSString *intString = [NSString stringWithFormat:@"%@", [defaults objectForKey:@"id"]];

你在NSUserDefaults中存储的内容并不一致,看起来像。

希望这有帮助!

答案 1 :(得分:1)

我认为%d获取你提供的任何内容的 int 值。在这种情况下,您将对象传递给stringWithFormat。您应该使用[NSString stringWithFormat:@"%@" ...

这里实际发生的是你打印出objectForKey返回的对象的指针值。第一次这是nil(0),第二次得到100243248,这是内存中某些东西的内存地址(无论你存储在NSUserDefaults中)。