iOS 6中的iPhone字符串比较奇怪的问题

时间:2014-02-06 14:03:06

标签: ios objective-c ios7 uitextfield

我曾经比较在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
}

这很好用,我只是想知道我的第一种方法有什么问题。

2 个答案:

答案 0 :(得分:3)

如果myTextfield.textnil,则[myTextfield.text isEqualToString: @""]将失败,因为消息传递nil返回nil(或0,NO视情况而定)。

在第二种情况下,您正在检查== 0,因此即使字符串为nil,您仍会获得正面结果。

答案 1 :(得分:1)

在iOS7中,未触及的UITextFields返回nil,而在以前的iOS版本中,它们返回一个空字符串。在两种情况下,触摸的UITextField都应该返回一个空字符串。

(你是否反过来质疑iOS6 w 7中的问题?如果没有,我还要确保文本字段正确连接,因为触摸的iOS7文本字段可能会返回空字符串而未合成的iOS6文本字段{ {3}}因为iOS6以这种方式特别严格。)