[英]iOS not requesting location services when request code executes
我正在开发的iOS应用中发生一个奇怪的错误(目标C)。 我在对象内部使用位置服务,该对象已创建并存储为根视图控制器类的实例变量。 该对象在viewDidLoad方法中初始化。
if (sunEventObject == nil) {
sunEventObject = [[SunEvent alloc] init];
}
[sunEventObject updateLocation];
我遇到了这样的问题,即应用程序在首次启动时不请求位置服务。 我已经在设备上运行该应用程序,同时使用Xcode和在
[locationManager requestAlwaysAuthorization];
线。 此行在SunEvent类中的一种用于刷新位置的方法中。 这行代码已执行,但该应用程序不请求位置服务权限。
解决方法是,将此代码放在didFinishLaunchingWithOptions方法的AppDelegate文件中。
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];
此解决方法现在大部分时间都有效,但是偶尔在首次启动(重新下载该应用程序)时,仍未请求位置服务。
我不知道可能是什么问题。 同样,代码正在执行(我知道是因为使用Xcode调试了该应用程序),但是该应用程序并没有像应做的那样请求位置服务。
注意此应用程序仅适用于iOS 8.x系统。
更新 info.plist文件具有正确的密钥和NSLocationAlwaysUsageDescription密钥的描述,因此这不是问题。
多亏马特,他的回答才有用。 我的错误已修复!
他的评论:“在此处查看我的回答,以总结必须遵循的正确逻辑: stackoverflow.com/a/30495310/341994 ”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.