<分区>
<分区>
我在我的应用程序中制作了一个自定义键盘。当用户按下空格键时,这段代码运行:
NSString *lastChar = [myTextField.text substringFromIndex:[myTextField.text length] - 1];
NSLog(@"lastChar is `%@`", lastChar);
if (lastChar != @" ")
{
NSString *currentString = [NSString stringWithFormat:@"%@ ", myTextField.text];
[myTextField setText:currentString];
}
然后我检查一下,如果用户最后使用的符号是 space
,他将无法再次使用它
(在我的情况下不需要)。但是,if 语句
下的代码仍在运行。所以我检查了 NSLog
,即使最后一个字符是 space
,if 语句
下的代码也会执行。它是如何发生的?
有人可以指出我的愚蠢错误吗?
提前致谢。
更新: 抱歉,我总是忘记如何在 Objective-C 中比较字符串,我已经标记了问题,谢谢大家的回答。
最佳答案
不是if
语句:Objective C中的NSString
应该和isEqualToString:
方法比较,而不是 !=
或 ==
运算符,检查引用相等性:
if (![lastChar isEqualToString:@" "]) {
...
}
关于ios - "if"语句不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16842709/