我从网络服务中获得了一些内容。
例如: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,我需要触发一个动作,如果该值不等于零,我需要触发另一个动作。
我该怎么办才能帮助我。
提前感谢你。
答案 0 :(得分:1)
请尝试改为:NSString *intString = [NSString stringWithFormat:@"%@", [defaults objectForKey:@"id"]];
你在NSUserDefaults
中存储的内容并不一致,看起来像。
希望这有帮助!
答案 1 :(得分:1)
我认为%d
获取你提供的任何内容的 int 值。在这种情况下,您将对象传递给stringWithFormat
。您应该使用[NSString stringWithFormat:@"%@" ...
。
这里实际发生的是你打印出objectForKey
返回的对象的指针值。第一次这是nil(0),第二次得到100243248,这是内存中某些东西的内存地址(无论你存储在NSUserDefaults
中)。