Nella mia applicazione sto scaricando alcune immagini dal web (dal mio server per essere precisi), al fine di salvare un po 'di banda e soprattutto di memoria sul telefono, li fornisco in due risoluzioni: 480x320 per la "vecchia" serie di iPhone e in 960x640 per l'iPhone 4 con il display retina. Ora devo essere in grado di rilevare dall'interno dell'applicazione quando è in esecuzione su un dispositivo che supporta la retina. Come potrei farlo?Rileva retina schermo/iPhone 4 in iPhone SDK
Ho pensato di utilizzare il frammento di codice al di sotto del quale mi restituirebbe uno specifico identificatore di dispositivo come ad es. "iPhone3", tuttavia, limiterei il rilevamento a iPhone4 e avrei bisogno di aggiornare quel codice per ogni dispositivo successivo con display retina.
size_t size;
// Set 'oldp' parameter to NULL to get the size of the data
// returned so we can allocate appropriate amount of space
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
// Allocate the space to store name
char *name = malloc(size);
// Get the platform name
sysctlbyname("hw.machine", name, &size, NULL, 0);
// Place name into a string
NSString *machine = [NSString stringWithCString:name];
Esiste una soluzione migliore (forse è molto evidente ma l'ho persa)?
questo è il modo corretto di farlo. – Elfred
Sì, usa questo, non provare mai a interrogare su quale dispositivo stai usando, finirà solo con il dolore. –
Questo è l'approccio corretto, in quanto non si desidera scrivere codice condizionale per l'iPhone 4 ma per un display con una scala/risoluzione diversa. Chissà quando l'iPod avrà il trattamento della retina. – FelixLam