0

Momentan sollte meine App nur Portrait unterstützen. Auf Zusammenfassung/Unterstützte Geräteausrichtung Ich habe nur Portrait ausgewählt, daher hoffe ich, dass meine App nicht rotiert. Ich testete die App auf einem Gerät und plötzlich die folgende Fehlermeldung bekomme ich bin zufällig:unerkannter Selektor gesendet an Instanz auf deviceOrientationDidChange

[UIButtonContent deviceOrientationDidChange:]: unrecognized selector sent to instance 

Es passiert, wenn ich das Gerät MANCHMAL drehen, ist nicht konsistent, und ist nicht immer über UIBUttonContent. Ich nehme an, dass, wenn ich nur Portrait auswähle, deviceOrientationDidChange nicht aufgerufen werden sollte oder ignoriert werden sollte.

Andere Zeiten stürzt meine App mit einem EXC_BAD_ACCESS (Code = 1, Adresse = etwas), aber es passiert, wenn ich das Gerät drehen, so denke ich, dass beide Fehler zusammenhängen.

Ich weiß nicht, was ich damit machen soll, es ist schwer zu debuggen, weil ich kein Feedback habe, der All Exceptions Breakpoint wird nicht aufgerufen, also weiß ich nicht wo und warum genau das passiert. Irgendeine Idee, wie man das debuggt, ist willkommen.

+0

Könnte mit etwas mehr Code tun ... – SomaMan

+0

Ich weiß, aber es passiert über die ganze App, so dass ich wirklich nicht wich Code hier eingeben. – clopez

Antwort

0

Ich habe dieses Problem vor langer Zeit gelöst, aber ich denke, es ist gut zu teilen, was mir in diesem Fall wirklich geholfen hat.

Nachdem ich alles mit Instrumenten ohne Ergebnisse versucht habe, habe ich mit dem Debugging von old-school begonnen. Ich hatte eine Idee von "wo" der Fehler war, also habe ich nur den ganzen Code in diesem Abschnitt kommentiert. Ich hatte Recht, der Fehler ist mit einigen Funktionen verschwunden. Danach machte ich "binäre Auskommentierung" (kommentieren Sie eine Hälfte), bis ich die Fehlerlinie bekam. Es war eine Third-Party-Bibliothek, ich hatte ein Objekt, das nicht richtig freigegeben wurde.

0

Haben Sie eine Klasse, die mit deviceOrientationDidChange: aufgerufen werden sollte? Wenn dies geschieht, bedeutet dies normalerweise, dass Sie eine freie Referenz auf ein nicht zugeordnetes Objekt haben. Sie sollten versuchen, Ihre App mit Instrumenten im "Zombies" -Modus zu profilieren.

+0

Ich habe gerade aktualisiert auf xcode 4.3.2 und Instrumente verschwunden, das erste zu beheben. – clopez

+0

http://stackoverflow.com/questions/9541153/where-did-instruments-go-in-xcode-4-3 – clopez

+0

Ich mache normalerweise nur Produkt => Profil von XCode. –

1

Dies sind die klassischen Anzeichen für einen Speicherverwaltungsfehler. Sie haben ein Objekt zu viel freigegeben und es wurde freigegeben, während es noch von einem anderen Objekt referenziert wird. Später meldet es etwas. In einigen Fällen hat ein neues Objekt seinen Platz eingenommen, aber dieses Objekt versteht die empfangenen Nachrichten nicht. In anderen Fällen gibt es kein gültiges Objekt und Sie bekommen einen Absturz.

Bearbeitet, um zweitens den Ratschlag, das Zombies-Instrument zu verwenden, um die Über-Freigabe zu finden.

+0

Das ist komisch, weil ich ARC benutze. – clopez