核心定位iOS8兼容iOS7

3
我在我的支持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设备),还是说有什么规定这段代码在iOS7上可用,而我不知道呢?

谢谢你提前。
1个回答

7
在iOS7中,kCLAuthorizationStatusAuthorizedAlwayskCLAuthorizationStatusAuthorizedWhenInUse枚举值被映射到kCLAuthorizationStatusAuthorized(顺便说一下,在iOS8中它已经被弃用)由iOS8 SDK。这就是为什么你不会得到任何崩溃的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接