iOS - 应用程序委托(delegate) - 使用 CLLocationManager 调用 didBecomeActive

标签 ios uiapplicationdelegate

我有一个典型的问题。在我的应用程序中,我正在处理应用程序委托(delegate)方法

- (void)applicationDidBecomeActive:(UIApplication *)application

刷新界面。

由于我的应用程序不会终止并在后台运行,因此只要应用程序进入事件状态,就会调用此方法并正常工作。
但是在我的一个 View Controller 中,我正在创建 CLLocationManager 对象

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self; // send loc updates to myself

问题是,当这个位置管理器对象被创建时,应用程序委托(delegate)的“applicationDidBecomeActive”也被调用,这不是我需要处理的。 location manager 对象初始化时如何忽略调用?

最佳答案

发生这样的调用很奇怪,但如果没有办法阻止它,只需在你的默认设置中做一个标志,smth like callAfterSettingDelegate,并在你的DidBcomeActive 检查它是否在那之后被调用,忽略这个调用并将那个标志设置为 nil。

关于iOS - 应用程序委托(delegate) - 使用 CLLocationManager 调用 didBecomeActive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10173885/

相关文章:

iphone - 如何从 AppDelegate 获取 navController。

ios:从应用程序委托(delegate)访问导航 Controller

ios - 获取自应用程序上次打开以来收到的所有推送通知

ios - UITableview 更新单个单元格

ios - iOS 13 中未调用应用程序委托(delegate)方法

iphone - iOS 4.0 中的应用程序将终止

ios - 如何禁用 UIButton 振动

ios - 在 iOS 设备上尝试时 Flutter 签名无效

ios - ABAddressBookGetAuthorizationStatus 在设置中授权后被拒绝

ios - 什么是FNFPlayer?它从后台线程访问UIApplication applicationState