2013-02-11 5 views
6

Ich habe eine benutzerdefinierte UITextField verwendet für für nicht leere Eingabe Validieren korrekte E-Mails, Passwörter größer als x Zeichen usw.Anwendung friert nach benutzerdefinierten Bearbeitung UITextField

Die UITextField hat einen Delegaten selbst, da ich all die Validierung tun auf dem Textfeldobjekt selbst. Nicht sicher, ob das das Problem ist.

Diese benutzerdefinierte UITextField wird in der .XIB-Datei erstellt.

Das Textfeld sperrt manchmal die Anwendung, wenn das Textfeld selbst bearbeitet wird. Es stürzt normalerweise auch ab, wenn ich die "Weiter" -Taste auf der Tastatur drücke (um zum nächsten Textfeld zu gelangen, das gefüllt werden muss).

Xcode gibt keinen Fehler zurück (z. B. ein Schleifenfehler, den ich angenommen habe), die Anwendung blockiert nur. Dies passiert nicht die ganze Zeit, aber normalerweise, wenn ich stress mit Text testen, dann drücken Sie "Weiter", es ist wahrscheinlich zu sperren.

Die App stürzt nicht ab ... es geht nicht zurück zum Hauptbildschirm, aber es stürzt wirklich ab und reagiert nicht mehr.

Irgendwelche Ideen? Lassen Sie es mich wissen, wenn Sie weitere Informationen benötigen, um das herauszufinden. Ich bin im Moment ratlos.


edit: gelöst, es ist offensichtlich keine gute Idee, eine UITextField des Delegierten auf sich zu setzen. Was ich am Ende getan habe, ist das Erstellen einer separaten Klasse, die sich speziell als Delegierte für die UITextField beschäftigt und alle Logik in dieser Klasse tut. Diese Klasse hätte auch eine Eigenschaft, die mit dem Textfeld verbunden ist, für das sie ein Delegat ist.

+0

Ich denke, Sie blockieren Hauptthread und App UI reagiert nicht mehr. Postleitzahl, wo die Validierung erfolgt – azimov

+2

Dies wird Ihre Frage beantworten: http://StackOverflow.com/Questions/1747777/self-delegate-self-whats-wrong-in-doing-that – trojanfoe

+0

@trojanfoe - danke. Ich werde es versuchen. Kann es einen Grund geben, warum dieses spezielle Problem nur auf dem iPhone 5/iOS 6.0 auftritt, aber nicht auf dem iPhone 4/iOS 6.0? – Andrei

Antwort

7

Ich werde auch hier die Antwort schreiben:

Offenbar ist es keine gute Idee, eine UITextField des Delegierten auf sich selbst zu setzen, weil es geht in eine Schleife am Ende kann.

Was ich getan habe, ist das Erstellen einer separaten Klasse, die sich speziell als Delegat für das UITextField beschäftigt und die ganze Logik in dieser Klasse tut. Diese Klasse hätte auch eine Eigenschaft, die mit dem Textfeld verbunden ist, für das sie ein Delegat ist.

+1

Sie rettete mein Leben (und meine Ferien !!): D – QLag

+0

@QLag Haha, das ist sehr gut zu hören! Bonnes Vacances! – Andrei

Verwandte Themen