ios - "if"语句不能正常工作?

标签 ios objective-c if-statement

<分区>

我在我的应用程序中制作了一个自定义键盘。当用户按下空格键时,这段代码运行:

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,即使最后一个字符是 spaceif 语句 下的代码也会执行。它是如何发生的? 有人可以指出我的愚蠢错误吗? 提前致谢。

更新: 抱歉,我总是忘记如何在 Objective-C 中比较字符串,我已经标记了问题,谢谢大家的回答。

最佳答案

不是if语句:Objective C中的NSString应该和isEqualToString:方法比较,而不是 !=== 运算符,检查引用相等性:

if (![lastChar isEqualToString:@" "]) {
    ...
}

关于ios - "if"语句不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16842709/

上一篇:ios - 我应该在 iOS 中制作我的 ivars 属性吗?

下一篇:iphone - iOS:google+ sdk 在授予 google+ 权限后重定向到 google.com,而不是重定向回应用程序

相关文章:

ios - 具有合并更改的 CoreData 和 NSFetchedResultsController

ios - 在 View 之间传递值给出 (null)

java - 如何避免工厂类中的 "cascading if\case"语句

ios - 使用 Cocoapods 的 Kiwi 测试目标

ios - 如何在 Titanium for iPad 中将选项卡组添加到拆分窗口

ios - 获取 UITapGestureRecognizer 目标

ios - 快速将数据从 IOS 应用程序传输到 Watch 应用程序

ios - 只为 UITableView 的一个方向启用弹跳

r - R中帕累托前沿的快速计算

javascript - 如果 var not set 总是结果为真,即使它的设置