为什么string不等于什么被存储?
这是一个简单而奇怪的问题
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”
但是我不去if语句的那一部分,即使tableViewNum实际上等于@“One”
正如你可以看到最后的NSLog所有的方式出来的
MADE THE ELSE One
但是,如果tableViewNum真的等于一,它会通过if语句不是else语句代码… ?????
你不能用==
操作符比较string。 改用isEqualToString
:
if([tableViewNum isEqualToString:@"One"]) { // etc.
…和其他条件相同。 你已经在第二块了。
更具体地说,你不应该使用==比较任何对象。 这只是比较指针。 使用[obj isEqual:otherObj]或NSString isEqualToString:如上所述。