IF语句的奇怪情况

时间:2014-09-04 12:10:50

标签: ios ios7

我有以下代码:

if (flag == 2 && username1 != username2 && password1 != password2)
{
 alert =[[UIAlertView alloc ] initWithTitle: @"INCORRECT...

我拥有的价值观:

flag = 2,username1 = @“aa”,password1 = @“aa”,username2 = @“aa”,password2 = @“aa”

那么上面的IF语句应该评估为假吗?然而,由于我不知道的原因,IF语句后的语句被执行!知道为什么吗?

感谢您的意见。

2 个答案:

答案 0 :(得分:4)

如果username1和其他字符串只是char *个变量,那么即使内容相同,指针也可能不同。< / p>

在C中,您可以使用strcmp,但在ObjC中,我认为您必须使用-isEqualToString:方法,例如:

if ((flag == 2) &&
    (![username1 isEqualToString:username2]) &&
    (![password1 isEqualToString:password2]))

答案 1 :(得分:3)

要比较字符串内容而不是对象,请使用Equal:

if ([string isEqualToString:@"Some String"])
{
    // Do stuff...
}