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的深入回答!