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 中更改 TabBar 上的图像和标签颜色?