Ich habe dieses seltsame Problem testen für leere (oder Null) Text-Eigenschaft. Hier ist mein Setup: Ich habe eine Ansicht mit 6 Textfeld in es und hier der Code verwende ich durch jene Feld zu gehen (in einem NSMutable Array geladen) ...UITextField: Test Text-Eigenschaft für leere Zeichenfolge oder Null oder Null funktioniert nicht
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];
}
}
Wenn ich in dieser Schnittstelle bin und geben sie Text in den beiden ersten Feld und „nur“ auf die Registerkarte remaning Feld und die Schaltfläche „Fertig“ ist hier, was ich von GDB Ausgang bekam:
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:
ich weiß, dass, wenn ich für leere Zeichenfolge testen sollte es funktionieren weil die text -Eigenschaft beim Ablegen auf der Konsole zeigt dies:
UITextField: 0x5d552a0; frame = (20 8; 260 30); text = ''; clipsToBounds = YES; opaque = NO; tag = 1; layer = CALayer: 0x5d54f20
Aber das WIRKLICHE Problem beginnt, wenn ich die Ansicht zurückgehe, einen Text in das gleiche erste Feld und den "Fertig" Knopf direkt danach einfüge (nicht durch das andere Feld gehend, so dass sie keinen Fokus bekommen). Dies ist wiederum der GDB Ausgang ...
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] * Beenden app aufgrund nicht abgefangene Ausnahme 'NSInvalidArgumentException', Grund: ‚* - [NSMutableArray insert: atIndex:]: Versuch Null Objekt auf 2'
Also, die offensichtlichen Probleme ist, dass zuerst die isEqualtoString:nil
nicht und zweiten funktioniert, wie kommt diese Textänderung von ‚einfügen‘ zu null, nur um den Fokus auf das Feld zu legen.
Gibt es also einen besseren Weg, um ein leeres Feld zu testen?
Danke!
wenn Sie UITextView verwenden, dann http://stackoverflow.com/a/8238742/1660139 – Haider
wenn Sie UITextView verwenden, dann würde dieser Link helfen http://stackoverflow.com/a/8238742/1660139 – Haider