2013-10-17 21 views
5

la mia app è in esecuzione senza problemi in iOS 7, ma quando lo eseguo in iOS 6 va giù. Il rapporto è:La mia app si chiude in ios6 con 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) 

Qualcuno ha avuto questo problema?

Nel mio delegato dell'app ho [[Aspetto UIView] setTintColor: [Colore bianco UIC]]; e se lo trasformo in [[UIView appearance] setBackgroundColor: [UIColor whiteColor]]; ottengo un nuovo errore che è

2013-10-17 23: 08: 58,310 Santarem Guide [659: c07] - [UITableView setTintColor:]: selettore non riconosciuto inviato ad esempio 0x1138aa00

e tutto diventa bianco.

+0

Alcuni metodi sono ammortizzati tra la versione di SDK, verificare se il metodo è disponibile prima dell'uso. –

+0

Come posso vedere quale è deprecato? –

+2

'if ([[Aspetto UIView] rispondeToSelector: @selector (setTintColor:)]) { [[Aspetto UIView] setTintColor: [UIColor biancoColore]]; } 'con questo. –

risposta

10

È necessario verificare se il metodo è disponibile prima di utilizzarlo.

1

Così ho capito, ho avuto diversi errori perché stavo usando un codice che ios6 non supporta. Ho dovuto mettere

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

In molte parti del progetto in modo da poter funzionare in iOS6. Un altro problema era che stavo usando la mia mappa anche in 3D.

Grazie per le risposte

in questo caso si devono includere macro riportata di seguito nella classe o globale in .pch -file

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

Controllare se dispositivo di destinazione è compatibile con iOS7:

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