In meiner Anwendung lade ich einige Bilder aus dem Internet (von meinem Server um genau zu sein), um einige Bandbreite und vor allem Speicher auf dem Telefon zu speichern, stelle ich sie in zwei Auflösungen: 480x320 für die "alte" iPhone-Serie und in 960x640 für das iPhone 4 mit dem Retina-Display. Jetzt muss ich in der App erkennen können, wenn es auf einem Gerät läuft, das den Retina-Bildschirm unterstützt. Wie könnte ich das tun?Detect Retina Bildschirm/iPhone 4 in iPhone SDK
Ich habe über die Verwendung des Codeausschnitts nachgedacht, der mir eine spezifische Geräteidentifikation wie zB zurückgeben würde. "iPhone3", aber dann würde ich die Erkennung auf das iPhone4 beschränken und müsste diesen Code für jedes nachfolgende Gerät mit einer Retina-Anzeige aktualisieren.
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];
Gibt es eine bessere soution (vielleicht ist es sehr offensichtlich, aber ich habe es verpasst)?
Dies ist der richtige Weg, es zu tun. – Elfred
Ja, benutze das, versuche niemals zu fragen, auf welchem Gerät du liegst, es wird nur mit Schmerzen enden. –
Das ist der richtige Ansatz, da Sie keinen bedingten Code für das iPhone 4 schreiben möchten, sondern für eine Anzeige mit einer anderen Skalierung/Auflösung. Wer weiß, wann der iPod die Netzhautbehandlung bekommt. – FelixLam