我一直在开发一个需要使用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
}
感谢所有帮助!非常感谢你!新年快乐!
答案 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。它是什么?它没有?