gpt4 book ai didi

iOS 等待位置管理器初始化

转载 作者:可可西里 更新时间:2023-11-01 03:28:33 25 4
gpt4 key购买 nike

我正在开发一个基于 map 和位置跟踪的 iOS 应用程序。当用户第一次启动应用程序时,它会请求跟踪位置等的权限。就好了。唯一的问题是在执行此操作时,我有代码设置初始 map View 和其他基于位置的变量用户单击“确定”之前。

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

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

在我不知道的位置管理器委托(delegate)中是否有警告框的“位置访问权限已授予”监听器或类似功能?我在文档中看不到这样的方法。有人知道这里的最佳做法是什么吗?非常感谢。

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

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 等待位置管理器初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13981679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com