iOS等待位置管理器初始化

iOS等待位置管理器初始化,第1张

概述我正在开发基于地图和位置跟踪的iOS应用程序.当用户首次启动应用程序时,它会要求获得跟踪位置等的权限.唯一的问题是,当它正在这样做时,我有代码在用户点击OK之前设置初始地图视图和其他基于位置的变量. 我发现我可以在while循环之后放置这些启动步骤,等待用户更改位置管理器的权限,如下所示,但这不可能是最佳实践,更不用说它会导致一些奇怪的行为启动画面和地图: BOOL firstrun = TRUE 我正在开发基于地图和位置跟踪的iOS应用程序.当用户首次启动应用程序时,它会要求获得跟踪位置等的权限.唯一的问题是,当它正在这样做时,我有代码在用户点击OK之前设置初始地图视图和其他基于位置的变量.

我发现我可以在while循环之后放置这些启动步骤,等待用户更改位置管理器的权限,如下所示,但这不可能是最佳实践,更不用说它会导致一些奇怪的行为启动画面和地图:

BOol firstrun = TRUE;while ([[locationManager class] authorizationStatus] == kCLAuthorizationStatusDenIEd || [[locationManager class] authorizationStatus] == kCLAuthorizationStatusNotDetermined) {    NSLog(@"Waiting for location permission");}...initiation code...

警报框是否有“位置访问权限”监听器或者我不知道的位置管理器委托中的类似功能?我在文档中看不到这样的方法.谁知道最好的做法是什么?非常感谢.

编辑
我按如下方式开始我的位置跟踪:

if (nil == locationManager)    locationManager = [[CLLocationManager alloc] init];[locationManager startMonitoringSignificantLocationChanges];self.musicmap.delegate = self;[self.mymap setShowsUserLocation:true];

谢谢

解决方法 我建议你的类成为CLLocationManagerDelegate,然后实现这个方法:
- (voID)locationManager:(CLLocationManager *)manager dIDChangeAuthorizationStatus:(CLAuthorizationStatus)status {    //Your code goes here}

有关CLLocationManagerDelegate的更多信息,请访问here.

希望有所帮助!

总结

以上是内存溢出为你收集整理的iOS等待位置管理器初始化全部内容,希望文章能够帮你解决iOS等待位置管理器初始化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存