如果Xcode没有识别语句

时间:2014-12-31 08:17:37

标签: ios iphone xcode

我一直在开发一个需要使用If-Statements的应用程序,但是,Xcode似乎跳过了#34; If" If-Statement的一部分,直接进入" Else" If语句的一部分。它完全忽略了If-Statement的实际限制,并且似乎通过跳过它来避免它们。我在所有的If语句中都看到了这一点,例如下面的语句:

if ([strResult isEqualToString:@"1"]) {
    NSLog(@"Logged In!");
} else {
    NSLog(@"Invalid Credentials");
}

我确实知道一个事实,当我转到PHP链接检查凭据时,它确实会返回" 1"如果他们是正确的" 0"如果它不是,那么我知道变量是正确的。

另一个例子:

if ([_username.text isEqualToString:@""] || [_password.text isEqualToString:@""]) {
    //Invalid Credentials
}

感谢所有帮助!非常感谢你!新年快乐!

2 个答案:

答案 0 :(得分:2)

所以你知道一些PHP代码返回“1”的事实?你是否也知道这个“1”最终会在strResult中出现?周围没有空格?你让初学者错误地认为你的代码是正确的,并且神奇的东西阻止了它的工作。相反,你的态度应该是:我犯了一个错误。我在哪里弄错了?

在if语句上设置断点是找到错误的第一步。

说真的,如果编译器无法获得简单的if语句,那么有人会使用它吗?

答案 1 :(得分:0)

我认为还有其他问题。你的if语句没问题。

我制作了这个版本的代码:

//
//  main.m
//  SimpleTest
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");

        NSString* strResult = @"0";

        if ([strResult isEqualToString:@"1"]) {
            NSLog(@"Logged In!");
        } else {
            NSLog(@"Invalid Credentials");
        }
    }
    return 0;
}

打印出来&#34;登录!&#34;正如所料。如果我创建strResult&#34; 0&#34;的值,它会输出&#34;无效的凭证。&#34;

所以你必须要有别的东西继续下去。打印出strResult。它是什么?它没有?