【问题标题】:Weird situation with IF statement [duplicate]IF 语句的奇怪情况[重复]
【发布时间】:2014-10-29 04:25:24
【问题描述】:

我有以下代码:

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

我的价值观:

标志 = 2,用户名 1 = @“aa”,密码 1 = @“aa”,用户名 2 = @“aa“,密码 2 = @“aa“

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

感谢您的意见。

【问题讨论】:

标签: ios ios7


【解决方案1】:

如果username1 和其他字符串只是char * 变量,则指针 可以不同,即使内容 相同。

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

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

【讨论】:

  • 你快了一分钟 - 你得到了我的支持。 ;o)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多