iphone - 我需要维护两个sdk(3.0和4.0)。但在 3.0 sdk 中我收到错误

标签 iphone uiview

我需要维护两个 sdk(3.0 和 4.0)。但在 3.0 sdk 中我遇到错误。

CGFloat maxScale;

if ( [[UIScreen mainScreen] respondsToSelector: @selector (scale)] == YES )
{
    maxScale = 1.0 / [[UIScreen mainScreen] scale];
}
else 
{
    maxScale = 1.0;
}


warning: 'UIScreen' may not respond to '-scale'
error: invalid operands to binary / (have 'double' and 'id')

如何解决这个问题?

最佳答案

如果您希望在使用不同的 SDK 版本构建时代码有所不同,则需要使用预处理器:

#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED

     maxScale = 1.0 / [[UIScreen mainScreen] scale];

#else

     maxScale = 1.0;
#endif

但通常您不需要这样做,请使用您拥有的最新 SDK 构建您的项目,并为目标的“iOS 部署目标”属性设置适当的值。然后您的应用程序将在您指定的 SDK 版本上运行,并且您拥有的代码将运行时检查 -scale 方法是否存在。

关于iphone - 我需要维护两个sdk(3.0和4.0)。但在 3.0 sdk 中我收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4693668/

相关文章:

ios - 通过 iTunes Connect 请求创建的所有沙盒测试人员 "Payment Information Required"

swift - UISwipeGestureRecognizer 添加到 UIView 的 subview 时无法识别

ios - 在代码中自定义 UIView

iOS:如何在tableview中响应显示参数?

ios - 修改除一个之外的所有 subview

iphone - 改变方向时定位 UIview

ios - subview 的边界在 layoutSubviews() 中为零

javascript - 在触摸手机上使用 Javascript 检测手指拖动?

ios - swift 将搜索栏添加到导航栏

ios - UITableview在每行出现之前无法平滑滚动?