2013-10-17 4 views
5

meine App läuft ohne Probleme in iOS 7, aber wenn ich es in IOS 6 laufen es geht nach unten. Der Bericht lautet:Meine App schließt in ios6 mit UIAppearance setTintColor

2013-10-17 22:58:45.509 Santarem Guide[606:c07] -[_UIAppearance setTintColor:]: unrecognized selector sent to instance 0xa149390 
2013-10-17 22:58:45.510 Santarem Guide[606:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_UIAppearance setTintColor:]: unrecognized selector sent to instance 0xa149390' 
*** First throw call stack: 
(0x29d8012 0x1951e7e 0x2a634bd 0x29c7bbc 0x29c794e 0x7ade 0x8967b7 0x896da7 0x897fab 0x8a9315 0x8aa24b 0x89bcf8 0x2e69df9 0x2e69ad0 0x294dbf5 0x294d962 0x297ebb6 0x297df44 0x297de1b 0x8977da 0x89965c 0x2dfd 0x20fa725) 
libc++abi.dylib: terminate called throwing an exception 
(lldb) 

Hat jemand dieses Problem?

In meinem App Delegate habe ich [[UIView Aussehen] setTintColor: [UIColor whiteColor]]; und wenn ich es zu [[UIView aussehen] setBackgroundColor: [UIColor whiteColor]]; Ich bekomme einen neuen Fehler, die

2013.10.17 23: 08: 58,310 Santarem Guide [659: c07] - [UITableView setTintColor:]: Unbekannter Selektor gesendet Instanz 0x1138aa00

und wird alles weiß.

+0

Einige Methoden werden zwischen der SDK-Version abgeschrieben. Prüfen Sie, ob die Methode vor der Verwendung verfügbar ist. –

+0

Wie kann ich sehen, welches veraltet ist? –

+2

'if ([[UIView Aussehen] antwortetToSelector: @selector (setTintColor:)]) { [[UIView Aussehen] setTintColor: [UIColor whiteColor]]; } 'mit diesem. –

Antwort

10

Sie sollten überprüfen, ob die Methode verfügbar ist, bevor Sie sie verwenden.

if ([[UIView appearance] respondsToSelector:@selector(setTintColor:)]) { 
    [[UIView appearance] setTintColor:[UIColor whiteColor]]; 
} 
1

Also ich fand heraus, ich hatte mehrere Fehler, weil ich etwas Code verwendete, den ios6 nicht unterstützt. Ich hatte

if (SYSTEM_VERSION_LESS_THAN(@"7.0")) { 
     // code here 
} else { 
    code here 
} 

In vielen Teilen des Projekts zu setzen, damit er in iOS6 laufen konnte. Ein weiteres Problem war, dass ich meine Karte auch mit 3D verwendete.

Danke für die Antworten

In diesem Fall müssen Sie in .pch -datei

#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending) 
2

Überprüfen Sie die folgenden Makro in der Klasse oder global sind, ob Zielgerät iOS7-kompatibel:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 
    [[UIView appearance] setTintColor:[UIColor whiteColor]]; 
} 
Verwandte Themen