我得到這個奇怪的問題測試空(或空)文本屬性。 這裏我的設置:我買了它6文本框,在這裏我用走通的領域(在NSMutable裝陣)的代碼視圖...UITextField:測試文本屬性爲空字符串或零或空不起作用
NSEnumerator *portsEnumerator = [appliancePorts objectEnumerator];
UITextField *tmpField;
newSite.port = [NSMutableArray array];
while (tmpField =[portsEnumerator nextObject]) {
NSLog(@"value:%@",tmpField.text);
if (![tmpField.text isEqualToString:nil]) {
[newSite.port addObject:(NSString *)tmpField.text];
}
}
當我在這個界面和請在頭兩個領域的一些文本和「公正」的標籤,其剩餘的領域和它的「完成」按鈕,這是我從GDB輸出了:
2010-08-10 20:16:54.489 myApp[4883:207] value:Value 1
2010-08-10 20:16:58.115 myApp[4883:207] value:Value 2
2010-08-10 20:17:02.002 myApp[4883:207] value:
2010-08-10 20:17:13.034 myApp[4883:207] value:
2010-08-10 20:17:15.854 myApp[4883:207] value:
2010-08-10 20:17:17.762 myApp[4883:207] value:
我知道,如果我測試空字符串它應該工作因爲轉儲到控制檯時的文本屬性顯示:
UITextField: 0x5d552a0; frame = (20 8; 260 30); text = ''; clipsToBounds = YES; opaque = NO; tag = 1; layer = CALayer: 0x5d54f20
但是,當我返回視圖時,REAL問題開始,在相同的前兩個字段中輸入一些文本,並且緊跟其後的「完成」按鈕(不通過另一個字段,因此它們沒有獲得任何焦點)。這又是GDB輸出...
2010-08-10 20:23:27.902 myApp[4914:207] value:Value 1
2010-08-10 20:23:31.739 myApp[4914:207] value:Value 2
2010-08-10 20:23:34.523 myApp[4914:207] value:(null)
2010-08-10 20:23:56.443對myApp [4914:207] *終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因是:「* - [NSMutableArray的insertObject:atIndex:]:嘗試在2' 插入無對象
所以,顯而易見的問題是,第一isEqualtoString:nil
不工作,第二,是怎麼來的這個文本改變'以只是將重點放在該領域的問題上。
那麼,有沒有更好的方法來測試空場?
謝謝!
如果您使用UITextView然後http://stackoverflow.com/a/8238742/1660139 – Haider 2012-12-14 13:22:43
如果您使用UITextView那麼這個鏈接將有助於http://stackoverflow.com/a/8238742/1660139 – Haider 2012-12-14 13:23:10