以下代码几乎完美无缺。我正在使用中间的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 不能。
答案 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?