我曾经比较在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
}
这很好用,我只是想知道我的第一种方法有什么问题。
答案 0 :(得分:3)
如果myTextfield.text
为nil
,则[myTextfield.text isEqualToString: @""]
将失败,因为消息传递nil返回nil(或0,NO
视情况而定)。
在第二种情况下,您正在检查== 0
,因此即使字符串为nil
,您仍会获得正面结果。
答案 1 :(得分:1)
在iOS7中,未触及的UITextFields返回nil,而在以前的iOS版本中,它们返回一个空字符串。在两种情况下,触摸的UITextField都应该返回一个空字符串。
(你是否反过来质疑iOS6 w 7中的问题?如果没有,我还要确保文本字段正确连接,因为触摸的iOS7文本字段可能会返回空字符串而未合成的iOS6文本字段{ {3}}因为iOS6以这种方式特别严格。)