如果声明总是采用其他方法?

时间:2012-08-12 16:19:26

标签: mysql ios if-statement

以下代码几乎完美无缺。我正在使用中间的PHP从Xcode连接到我的localhost上的mysql服务器。这最终将是一个登录系统:

NSString *strURL = [NSString stringWithFormat:@"http://localhost:8888/Check.php?user=%@&pass=%@",txtName.text,passName.text];

// to execute php code
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:strURL]];
NSError *e;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&e];

// to receive the returned value
NSString *strResult = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]autorelease];

NSLog(@"%@",strResult);

NSString *success = @"Success";

if ([strResult isEqualToString:success]) {
NSLog(@"I realize that the two strings are the same");
}

else {
NSLog(@"The two strings are not the same");
}

strResult在调试器中输出以下项目,我告诉php文件回显给我不同的条件,(如果用户名和密码是对还是错)

但是,由于某种原因,代码的if语句部分始终使用else方法,即使在输出中它特别指出字符串strResult包含单词“Success”。

这太刺激了,因为可以看到两个字符串(strResult和成功)彼此相等但由于某种原因 Xcode 不能。

1 个答案:

答案 0 :(得分:4)

您的strResult最后可能包含空格。尝试这样记录以获取字符串中字符的十六进制转储:

NSLog(@"strResult = %@", [strResult dataUsingEncoding:NSUTF8StringEncoding]);
NSLog(@"success = %@", [success dataUsingEncoding:NSUTF8StringEncoding]);

NSLog(@"%u",strResult.length);

如果是空白问题,可以使用以下答案修剪它:What's the best way to trim whitespace from a string in Cocoa Touch?