-1

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

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 语句代码...?????

4

2 回答 2

6

您不能将字符串与==运算符进行比较。改用isEqualToString

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

……其余条件也一样。你已经在第二个街区做对了。

于 2012-07-05T16:42:14.897 回答
0

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

于 2012-07-05T16:59:31.980 回答