我在检测 iOS 设备上的视网膜显示时遇到问题。我正在使用各种人推荐的以下代码:
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 = [s scale]”行出现“初始化中的类型不兼容”错误,因为我正在尝试为浮点数分配一个 id。我找不到任何相关的信息。由于其他人似乎都在使用这种方法,我一定在这里遗漏了一些非常明显的东西吗?顺便说一下,基本 SDK 版本是 4.3,带有 XCode 4。
这是我的 BaseSDK/部署目标设置:
更新:我已经解决了。基本上问题是一些 XCode 问题。为了解决其他一些问题,我必须卸载并重新安装 XCode。之后这种行为就消失了。