2017-02-14 1 views
0

Ich habe eine grundlegende Anmeldeseite, die zwei Werte (Benutzername und Kennwort) und diese Details an meinen Server übergeben, wo ich PHP verwenden, um das Ergebnis analysieren und ein JSON-Array zurückgeben.Uncaught NSexception wenn Tastatur vorhanden

Alles funktioniert gut, kann ich richtig anmelden, die richtigen Fehlermeldungen auf schlechten Logins erscheinen etc .. howeve wenn ich versuche, in die Anwendung anmelden, während die Tastatur nicht minimiert wird:

libc++abi.dylib: terminating with uncaught exception of type NSException 

Ich hatte gehofft, jemand könnte ein bisschen eine Idee haben, warum das ist? Mein ganzer Fehler Thread ist wie folgt:

libsystem_kernel.dylib`__pthread_kill: 
0x18bb6700c <+0>: movz x16, #0x148 
0x18bb67010 <+4>: svc #0x80 
->0x18bb67014 <+8>: b.lo 0x18bb6702c    ; <+32> 
0x18bb67018 <+12>: stp x29, x30, [sp, #-16]! 
0x18bb6701c <+16>: mov x29, sp 
0x18bb67020 <+20>: bl  0x18bb4a7d0    ; cerror_nocancel 
0x18bb67024 <+24>: mov sp, x29 
0x18bb67028 <+28>: ldp x29, x30, [sp], #16 
0x18bb6702c <+32>: ret  

I have attached a screenshsot of my app for you to get a clearer pic of what I mean that the keyboard is not minimised

Complete debugger output

+0

Legen Sie einen Ausnahmehaltepunkt in Xcode fest, um weitere Informationen zu erhalten. Es gibt zwei wichtige Informationen: a) Welche Art von Ausnahme wird ausgelöst, und b) Was ist der Stack-Trace, wenn es passiert –

+0

Okay, ich habe es getan. Es zeigt die Linie, die den Fehler wirft, der eine Warnung ist, die dem Bildschirm präsentiert wird. Angehängtes Bild – Nouman

+0

Welche Ausnahme wird geworfen? Kannst du etwas über die Ausnahme im Ausgabebereich in Xcode sehen? Können Sie den tatsächlichen Stack-Trace teilen? Sie können 'bt' im Debugger eingeben, wenn Sie pausiert sind, um eine Textdarstellung zu erhalten. –

Antwort

0

Die Ausnahme sagt Ihnen nicht UI-Operationen auf einem Hintergrund-Thread auszuführen. Sie benötigen einen Code wickeln, dass die Benutzeroberfläche in einem Versand an den Hauptthread berührt:

DispatchQueue.main.async { 
    // set up and present alert 
} 

Im Allgemeinen kann jedes Mal, wenn Sie eine Klasse verwenden, die mit UI beginnt oder hat View im Namen, müssen Sie sein auf dem Hauptthread.

+0

GECK Vielen Dank SO.! So viel! Perfekt, es funktioniert! Vielen Dank für Ihre Zeit! – Nouman

Verwandte Themen