0

我正在尝试检测设备的 ios 版本:

  if(floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
        {
            NSLog(@"iOS Type: iOS7");
            self.iosType = IOS_7;
        } else if(floor(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_6_0){
            NSLog(@"iOS Type: iOS6");
            self.iosType = IOS_6;
        }else{
            NSLog(@"iOS Type: iOS5 or below");
            self.iosType = IOS_5_BELOW;
        }

但是,当我在我的 ios 6 模拟器上运行它时,它返回 992 而不是 993,就像它在 NSObjCRuntime 中定义的那样。

#define NSFoundationVersionNumber_iOS_6_0  993.00
#define NSFoundationVersionNumber_iOS_6_1  993.00

这只是一个适用于真实 ios6 设备的模拟器问题吗?谢谢。

4

1 回答 1

1

我遇到了同样的问题,并做了很多研究以解决它。通过更新 Xcode 解决了这个问题:我的 Xcode 版本是 4.6.3,并且没有自动更新来获取 Xcode 5.1,因此您必须手动进行,并且不会通知您存在此更新。总之,这个问题与模拟器无关,它与Xcode的版本有关。您只需要获取最新版本即可。

我的 2 美分

于 2014-04-01T09:52:32.230 回答