核心位置iOS8与iOS7的兼容性

时间:2014-10-27 06:23:45

标签: ios ios7 ios8 core-location

我在iOS8兼容应用程序中编写了以下代码。该应用程序在iOS8上工作正常,令我惊讶的是iOS7。我的问题是,为什么这个代码在iOS7上没有崩溃?

#import <CoreLocation/CoreLocation.h>
.
.
CLAuthorizationStatus authStatus = [CLLocationManager authorizationStatus];
.
// TODO some of these statuses are iOS8 only not iOS7 - need to check.
if ((authStatus == kCLAuthorizationStatusAuthorized) || (authStatus == kCLAuthorizationStatusAuthorizedAlways) ||
(authStatus == kCLAuthorizationStatusAuthorizedWhenInUse))    {
<some actual code>
}

常量kCLAuthorizationStatusAuthorizedWhenInUse和kCLAuthorizationStatusAuthorizedAlways随iOS8一起推出,所以当我试图在iOS7模拟器中运行它时,我期待悲剧,但它运行得很好。这是一个我应该在真正的iOS7设备上担心的问题(我没有更多)或者有什么东西说这个代码适用于iOS7我不知道吗?

提前谢谢。

1 个答案:

答案 0 :(得分:7)

在iOS7中,kCLAuthorizationStatusAuthorizedAlwayskCLAuthorizationStatusAuthorizedWhenInUse枚举值被映射到iOS {8}中的kCLAuthorizationStatusAuthorized(在iOS 8中已弃用)。这就是为什么你不会遇到任何崩溃的原因。