1

以下代码几乎可以完美运行。我正在使用中间的 php 从 Xcode 连接到我的本地主机上的 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 和 success)彼此相等,但由于某种原因Xcode不能。

4

1 回答 1

4

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

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

或者

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

如果是空格问题,您可以使用此处的答案对其进行修剪:在 Cocoa Touch 中从字符串中修剪空格的最佳方法是什么?

于 2012-08-12T16:40:37.607 回答