- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于 CLLocationManager 的问题。在请求许可后,我想立即使用 locationServices。我在 viewDidLoad: 中的代码如下所示:
if (![CLLocationManager locationServicesEnabled])
{
[self locationServicesAreNotEnabled];
}
else
{
CLAuthorizationStatus authStatus = [CLLocationManager authorizationStatus];
if (authStatus == kCLAuthorizationStatusDenied || authStatus == kCLAuthorizationStatusRestricted)
{
NSLog(@"Location Services unavailable denied/restricted");
}
else if (authStatus == kCLAuthorizationStatusNotDetermined)
{
[_locationManager requestAlwaysAuthorization];
}
if (authStatus == kCLAuthorizationStatusAuthorizedAlways || authStatus == kCLAuthorizationStatusAuthorizedWhenInUse)
{
[self startStandardUpdates];
}
}
`
似乎代码命中了行 [_location Manager requestAlwaysAuthorization];然后,不等待用户的回答,继续执行下一个 if 语句。如何等待用户的响应,然后才调用
if (authStatus == kCLAuthorizationStatusAuthorizedAlways || authStatus == kCLAuthorizationStatusAuthorizedWhenInUse)
?我可以通过使用 block 来实现吗?谢谢
最佳答案
您需要实现locationManager:didChangeAuthorizationStatus:
。一旦您获得授权,它就会被调用,然后您可以立即继续使用位置管理器。
你实际上可以预先将一个 block (在你获得授权后说出你想做什么)存储为一个属性,这样当 locationManager:didChangeAuthorizationStatus:
被调用时,你可以查看是否已存储该 block ,如果已存储,则调用它。
关于ios - 在 requestAlwaysAuthorization 之后立即使用 CLLocationManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697355/
我的代码包含在下面。它是一个旨在返回当前位置坐标的类。我得到的唯一输出是“之前之后之前之后” - 围绕 requestAlwaysAuthorization 的打印行。然后应用程序崩溃。请求对话框有时
我一直在尝试使用一些花哨的 iBeacons 但没有成功,kCLAuthorizationStatusNotDetermined。根据其他问题,需要将这些键添加到 info.plist (有些问题说一
CLLocationManager requestAlwaysAuthorization 弹出窗口立即显示和隐藏,让用户没有时间按下允许按钮。这是我为位置管理编写的类: import UIKit cl
在用户第一次选择“不允许”选项后,调用 [CLLocationManager requestAlwaysAuthorization] 不会显示警报。有没有办法强制应用程序在需要时再次显示警报? 最佳答
我在 plist 上有这段代码: NSLocationUsageDescription Usage NSLocationWhenInUsageDescription WhenIn NSLocation
当请求用户的 iOS 位置权限时,我如何知道 locationManager.requestAlwaysAuthorization() 是否已经被请求给用户? 如果用户有 .AuthorizedWhe
我有一个关于 CLLocationManager 的问题。在请求许可后,我想立即使用 locationServices。我在 viewDidLoad: 中的代码如下所示: if (![CLLocati
我正在尝试使用多步骤过程请求用户的位置;但是,当调用 requestAlwaysAuthorization 时,如果未执行,我想移动以显示消息。 让我通过展示我的流程来更好地解释 这是我目前的流程 请
我的应用曾经使用 requestAlwaysAuthorization 和 NSLocationAlwaysUsageDescription 的 Info.plist 条目。 我将其更改为使用 req
我正在尝试对用户的位置状态进行验证。我实例化了 CLLocationManager,每当我尝试调用 requestAlwaysAuthorization 或 requestWhenInUse 时,我都
在 iOS13 上请求 Always 权限期间,用户可以点击“允许一次”,这将调用状态为 kCLAuthorizationStatusAuthorizedWhenInUse 的适当委托(delegat
didEnterRegion 和 didExitRegion 仅在我请求并允许始终授权 CoreLocation 后调用 即使我请求 WhenInUseAuthorization didExit 和
我有 requestAlwaysAuthorization,如果用户不接受 requestAlwaysAuthorization 我想在应用程序中退出? How can I do it ? 我的代码在
这是我的代码,显示 map 上当前位置的警报和蓝点: MapName.h #import #import #import @interface MapName : UIViewControlle
我在 IOS Ask Request Permission for Location Usage in Always 上遇到了问题。 IOS 8.0 Swift 请求位置权限 requestAlway
当我的应用程序在后台运行时,我真的很想看到显示“____ 正在使用您的位置”的蓝色条,因为这有利于用户体验。我只能在使用 requestWhenInUseAuthorization 并在 plist
当应用在 iOS 13 中使用 requestAlwaysAuthorization 在 CLLocationManager 中请求地理定位时,用户似乎无法获得 Always Allow 选项。它显示
我正在快速开发一个简单的 ios 应用程序,它获取用户的位置并显示位置。我需要将此应用程序设置为针对 ios 7.0 及更高版本,以便 iPhone 4 用户可以使用此应用程序。但是,当我设置Depl
我是一名优秀的程序员,十分优秀!