我有以下代码:
if (flag == 2 && username1 != username2 && password1 != password2)
{
alert =[[UIAlertView alloc ] initWithTitle: @"INCORRECT...
我拥有的价值观:
flag = 2,username1 = @“aa”,password1 = @“aa”,username2 = @“aa”,password2 = @“aa”
那么上面的IF语句应该评估为假吗?然而,由于我不知道的原因,IF语句后的语句被执行!知道为什么吗?
感谢您的意见。
答案 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...
}