【问题标题】:iPhone string comparison strange issue in iOS 6iOS 6中的iPhone字符串比较奇怪问题
【发布时间】:2014-03-03 12:38:10
【问题描述】:
我用来比较txt字段中输入的文本如下,
if ([myTextfield.text isEqualToString: @""])
{
// success code
}
else
{
// my code
}
在 iOS 7 中,此检查非常有效。如果在文本字段中没有输入任何内容,则条件为成功。但在 iOS 6 中,如果该字段为空,则此条件始终为 false 并移至 else 块。
所以我确实喜欢,
if (myTextfield.text.length == 0)
{
// success code
}
else
{
// my code
}
这很好用,我只是想知道我的第一种方法有什么问题。
【问题讨论】:
标签:
ios
objective-c
ios7
uitextfield
【解决方案1】:
如果 myTextfield.text 是 nil,[myTextfield.text isEqualToString: @""] 将失败,因为消息传递 nil 返回 nil(或 0,NO 视情况而定)。
在第二种情况下,您正在检查== 0,因此即使字符串是nil,您仍然会得到肯定的结果。
【解决方案2】:
在 iOS7 中,未修改的 UITextFields 返回 nil,而在之前的 iOS 版本中,它们返回空字符串。在这两种情况下触摸的 UITextFields 都应该返回一个空字符串。
(你问这个问题是不是把 iOS6 w 7 弄错了?如果没有,我还要确保文本字段正确连接,因为触摸的 iOS7 文本字段可能会返回一个空字符串,而未合成的 iOS6 文本字段@ 987654321@,因为iOS6在这方面特别严格。)