iOSデバイスでのRetinaディスプレイの検出に問題があります。私はさまざまな人々によって推奨された次のコードを使用しています:
BOOL isRetina()
{
UIScreen* s = [UIScreen mainScreen];
if ([s respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
[s respondsToSelector:@selector(scale)])
{
CGFloat scale = [s scale];
return scale == 2.0;
}
return NO;
}
問題は、展開ターゲットのiOS 4以降では正常にコンパイルされることですが、iOS3.2でコンパイルすると、「scale =[sscale]」行で「Incompatibletypesininitialization」エラーが発生します。フロートにIDを割り当てます。それについては何も見つかりませんでした。他の誰もがこのアプローチを使用しているように見えるので、私はここで本当に明白な何かを見逃しているに違いありませんか?ちなみに、ベースSDKのバージョンは4.3で、XCode4が含まれています。
BaseSDK/デプロイメントターゲットの設定は次のとおりです。
更新:私はそれを解決しました。基本的に、問題はXCodeの問題でした。他の問題を修正するには、XCodeをアンインストールして再インストールする必要がありました。その後、動作はなくなりました。