检查字典与ObjectForKey IsEqualToString不起作用

时间:2012-09-09 18:38:15

标签: nsmutabledictionary

我有这个代码,并在互联网上搜索并发现它没问题,但它不与我合作

    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    .....
    NSLog(@"%@",[dict objectForKey:@"STATUS"]);

    if ([[dict objectForKey:@"STATUS"] isEqualToString:@"Y"]) {

       NSLog(@"Done");

    }

NSLog显示Y如果法规

应该使用哪个

1 个答案:

答案 0 :(得分:3)

当你这样做时:

 [dict setObject:[arr objectAtIndex:1] ...

我认为这是将字符串作为对象添加到字典中。 NSLog行正在工作,因为NSLog向​​每个对象发送“description”消息,将其转换为字符串值。你可以做同样的事情。

尝试改变这一点:

if ([[dict objectForKey:@"STATUS"] isEqualToString:@"Y"])

到此:

if ([[[dict objectForKey:@"STATUS"] description] isEqualToString:@"Y"]) 

在进行比较之前,这将得到objectForKey返回的对象的字符串值。

如果你认为可能有一个空格会丢掉比较,那么在比较之前修剪字符串,如下所示:

if ([[[dict objectForKey:@"STATUS"] stringByTrimmingCharactersInSet:
    [NSCharacterSet whitespaceAndNewlineCharacterSet]] isEqualToString:@"Y"])