2014-02-06 47 views
1

我曾經在下面一個txt字段中輸入文本比較,iPhone字符串比較奇怪的問題在iOS 6中

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 
} 

這工作得很好,我只是想知道什麼是錯誤的,我第一種方法。

回答

3

如果myTextfield.textnil,[myTextfield.text isEqualToString: @""]將失敗,因爲消息nil返回零(或0,NO在適當情況下)。

在第二種情況下,您正在檢查== 0,因此即使字符串爲nil,您仍然會得到肯定的結果。

1

在iOS7中,未觸及的UITextField返回nil,而在之前的iOS版本中,它們返回空字符串。在這兩種情況下觸摸的UITextFields應該返回一個空字符串。如果不是這樣,我還要確保文本字段已正確連接,因爲觸摸的iOS7文本字段可能返回空字符串,而未合成的iOS6文本字段could return NULL由於iOS6對此特別嚴格。)