iPhone nslog "EXC_BAD_ACCESS"

7

Ich versuche, NSLog zu verwenden, um Konsolenmeldungen zu drucken. Das Problem ist manchmal ich erhalte einen "EXC_BAD_ACCESS" Fehler beim Aufruf

%Vor%

Hier möchte ich einfach sehen, was die in die Funktion übergebenen Argumente enthalten. Der erste NSLog funktioniert einwandfrei. Die zweite verursacht eine "EXC_BAD_ACCESS" und ich verstehe nicht warum?.

    
Mads Lee Jensen 27.02.2011, 10:52
quelle

5 Antworten

13

%@ funktioniert nur mit Objekten. Und toInterfaceOrientation ist kein Objekt.

Wie Sie UIInterfaceOrientation es ist nur ein enum .

    
Matthias Bauch 27.02.2011, 10:59
quelle
6

Der zweite NSLog-Absturz, weil Sie versuchen, eine Ganzzahl als NSObject zu drucken (% @ anstelle von% d). UIInterfaceOrientation ist eine Enum, die nicht funktioniert.

    
Yannick L. 27.02.2011 11:02
quelle
2

EXC_BAD_ACCESS bedeutet normalerweise, dass Sie versuchen, ein Objekt aufzurufen, das aus dem Speicher freigegeben wurde. Versuchen Sie, NSZombies in Ihren Umgebungsvariablen einzuschalten, um zu sehen, wo das Problem liegt

Beantworten Sie eine ähnliche Frage hier: Wie verwende ich NSzombie in xcode?

    
Hector204 27.02.2011 11:01
quelle
2

Ссылка

% @ ist nur für Objekte.

UIInterfaceOrientation ist eine enum: Ссылка

Wenn Sie% @ verwenden, ruft es im Wesentlichen Folgendes auf:

%Vor%

Offensichtlich verursacht dies eine EXC_BAD_ACCESS

    
Ajay 27.02.2011 11:08
quelle
1

toInterfaceOrientation ist eine Aufzählungsvariable ... Wenn Sie also ein Protokoll davon drucken wollen, müssen Sie% d ...... verwenden. und% @ wird meistens für Objekte verwendet ...

Verwenden Sie diesen Code :

  

NSLog (@ "EXC_BAD_ACCESS:% d", toInterfaceOrientation);

    
Sonu 23.09.2011 11:18
quelle

Tags und Links