IOS 7.1 上的 requestWhenInUseAuthorization 错误

Posted

技术标签:

【中文标题】IOS 7.1 上的 requestWhenInUseAuthorization 错误【英文标题】:requestWhenInUseAuthorization error on IOS 7.1 【发布时间】:2014-12-18 09:46:37 【问题描述】:

我正在使用最新的 Xcode 版本来开发一个处理地理定位的应用程序。 我使用这行代码并且已经在我的 plist 文件中添加了描述:

[self.locationManager requestWhenInUseAuthorization];

这在 ios 8 上完美运行,但在 iOS 7 上仍然无法运行。 如何在 iOS 7 和 8 版本上处理地理定位(提示用户并更新其位置)?

编辑

在 Xcode 6 上,我的基础 SDK 是 iOS 8,我的部署目标是 7.0 及更高版本(此处代码运行良好)。 如果我想在以前的版本(例如 7.0)上启动模拟器,我需要使用 Xcode 5 启动项目。这就是我得到错误的地方。

【问题讨论】:

【参考方案1】:

在我的应用程序中,我写了这样的内容:

self.locationManager                 = [[CLLocationManager alloc] init];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8)

    [self.locationManager requestWhenInUseAuthorization];

self.locationManager.delegate        = self;
[self.locationManager startUpdatingLocation];

它对我来说非常有用。

编辑:

在 iOS 7 上运行应用程序不需要 xcode 5。您可以为 Xcode 6 安装 iOS 7 模拟器。

转到 Xcode 首选项,在下载下下载 iOS 7 模拟器。

【讨论】:

似乎 requestWhenInUseAuthorization 在 iOS 7.1 的 Xcode 5 下不存在。我收到“无可见界面”消息:/ 并且无法在模拟器上启动应用程序。 @SuperGuillaume 是的,它在 XCode 5 和 iOS 7 中不起作用。它在 iOS 8 和 XCode 6 中引入 有什么办法可以在这两个版本上工作吗? @SuperGuillaume:我正在使用上面的代码,它在两个版本中都可以使用。我在 AppStore 中有一个应用程序,它使用相同的代码并且工作正常 尽管我在 iOS 7 上的模拟器有错误,但你的意思是它可以在 iOS 7 的真实设备上运行?

以上是关于IOS 7.1 上的 requestWhenInUseAuthorization 错误的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7.1 上的 XLForm 空白

ios 7.1 上的 zxingwidget 构建错误

iOS 7.1 上的构建错误 - Zxing

如何在 iOS 7.1 中更改 TabBar 上的图像和标签颜色?

无法在 El Capitan 上的 Xcode 6.4 上下载 iOS 7.1 模拟器

显示和关闭视图控制器后,iOS 7.1 上的标签栏背景丢失