Frage

Hintergrund

  • Ich verwende UKCrashReporter in meiner app.

  • Ich habe meine eigene Uncaught installiert Exception Handler.

  • Ich bin die Einrichtung der managedObjectContext des Objekts activeItemController in applicationDidFinishLaunching (1)

Das Problem

Wenn die managedObjectContext Methode eine Ausnahme auslöst, wird nur der Crash Reporter Dialogfeld blinkt, bevor die App abstürzt und so erhält der Benutzer nie den Absturz zu melden.

Ich möchte meine app nur , um fortzufahren nach der Absturz berichtet wurde, nicht während das Fenster angezeigt wird.

Was habe ich versucht,

  • Wenn UKCrashReporterCheckForCrash () waren eine objektive C-Methode, nehme ich an Ich konnte nennen performSelectorOnMainThread: waitUntilDone: JA aber es ist nicht.

  • Ich habe an einem anderen Stapel sieht Überlauf Fragen zu mit Bedingte Sperren Anwendungen zu unterbrechen, aber ich kann nicht verstehen, wie ich es verwenden würde für eine C-Funktion.

Wie würde ich mich darüber auf eine nette Art zu tun? Leute haben einen Rat    für mich? Jegliche Antworten wäre viel    geschätzt.

Der Kodex

// In app delegate

-(void)applicationWillFinishLaunching:(NSNotification *)aNotification {
        UKCrashReporterCheckForCrash();   // A C function which then creates a window if
                                          // it detects a crash has happened.
}

-(void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    [activeItemController setMoContextDisk:[self managedObjectContext]];
    [activeItemController setMoContextMemory:[self managedObjectContextMemory]];
}

Update 1

Ich habe, um weitere Informationen gebeten worden, auf das, was ich zu tun, ich versuche, so hier geht.

Der Fehler, der dieses Denken ausgelöst eine Ausnahme war, als managedObjectModels verschmelzen. Meine app in einer Schleife Druck „abgefangene Ausnahme“ auf der Konsole alle paar Millisekunden erwischt wurde.

Und wenn ich den abgefangene Exception-Handler installiert ist, bevor diese Ausnahme passierte, würde ich das beschriebene Verhalten bekommen -. Mein app würde anwerfen, den Crash-Bericht Dialog kurz angezeigt, dann weiter laden und Absturz wieder

Zusammenfassung - Ich möchte Fehler in der Lage sein zu behandeln, die beim Start passieren

.

(1) Ich bin nicht Bindungen mit, dies zu tun, wie ich Bindungen gedacht, die Klasse problematischer machen zu testen.

War es hilfreich?

Lösung

Ich denke, Ihr Problem mit dem Denken davon ist als „Pause“, um Ihre App. Denken Sie daran, mehr als ein unterschiedlichen Ausgang UI Zustand. Ihre Versuche, die Laufschleife zu blockieren werden verhindert, dass jedes interaktives Fenster von ... na ja, interaktiv zu sein. : -)

Ihre beste Wette ist Ihre Haupt-UI zu zeigen (und Datenquellen zu verbinden, usw.) nur dann, wenn die „bin ich den Benutzer auffordert, einen Crash-Bericht vorzulegen“ Methode sagt: „Nein, gehen Sie vor und beginnen normalerweise“. Ansonsten zeigen Sie Ihre Fenster, und wenn der Benutzer sendet oder ablehnt, den Bericht zu senden, schließen Sie das Fenster und fragen Sie Ihren App Controller den normalen Start, um fortzufahren.

schaute ich auf UKCrashReporterCheckForCrash () und es scheint nicht, ein Fenster jeglicher Art zu erstellen. Er legt lediglich den Absturz. Können Sie beschreiben, was Sie mit ausführlicher tun?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top