私のアプリケーションでは、ウェブから(正確にはサーバーから)いくつかの画像をダウンロードしています。帯域幅と特に電話のメモリを節約するために、「古い」iPhoneシリーズ用の480x320とiPhone 4 Retina ディスプレイの場合は 960x640。次に、Retina スクリーンをサポートするデバイスでアプリが実行されていることをアプリ内から検出できるようにする必要があります。どうすればそれができますか?
以下のコード スニペットを使用して、特定のデバイス識別子を返すことを考えていました。「iPhone3」ですが、検出を iPhone4 に限定し、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];
より良い解決策はありますか (おそらくそれは非常に明白ですが、私はそれを見逃しました)?