为什么字符串不相等什么存储?

时间:2012-07-05 16:41:11

标签: iphone objective-c ios ios5

这是一个简单而奇怪的问题......

if(tableViewNum == @"One") {
        if ([drinkArray objectAtIndex:0] == currentDate) {
            [updatedArray addObject:drinkArray];
            NSLog(@"MADE THE ELSE1");
        }
        NSLog(@"MADE THE ELSE2");
    }
    else if (tableViewNum == @"Two") {
        if ([[drinkArray objectAtIndex:0] isEqualToString:yesterdayDate])
            [updatedArray addObject:drinkArray];
    } else {
        NSLog(@"MADE THE ELSE %@",tableViewNum);
        [updatedArray addObject:drinkArray];
    }

在第一个if语句中,我问tableViewNum == @“One”

但即使tableViewNum确实等于@“One”,我也不会进入if语句的那一部分

正如你可以看到最后一个NSLog的所有方式都是

MADE THE ELSE One

但是如果tableViewNum真的等于One,它会通过if语句而不是else语句代码...... ?????

2 个答案:

答案 0 :(得分:6)

您无法将字符串与==运算符进行比较。请改用isEqualToString

if([tableViewNum isEqualToString:@"One"]) {
    // etc.

......其他条件也一样。你已经在第二个街区做得很好。

答案 1 :(得分:0)

更具体地说,您不应该使用==来比较任何对象。这比较指针。使用[obj isEqual:otherObj]或使用NSStrings isEqualToString:如上所述。