Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为什么字符串不等于存储的内容?_Iphone_Objective C_Ios_Ios5 - Fatal编程技术网

Iphone 为什么字符串不等于存储的内容?

Iphone 为什么字符串不等于存储的内容?,iphone,objective-c,ios,ios5,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

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

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==@“一”

但我不去if语句的那一部分,即使tableViewNum实际上等于“一”

正如您所看到的,最后一个NSLog all ways以

MADE THE ELSE One

但是如果tableViewNum真的等于1,它将通过if语句而不是else语句代码…?

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

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

…其他条件也是如此。您已经在第二个块中正确地进行了比较。

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

谢谢!在学习了PHP之后,我仍然习惯于使用Objective C:)感谢Mario的深入回答!