【问题标题】:iOS - Application delegate - Calling didBecomeActive with CLLocationManageriOS - 应用程序委托 - 使用 CLLocationManager 调用 didBecomeActive
【发布时间】:2012-04-16 12:15:50
【问题描述】:

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

- (void)applicationDidBecomeActive:(UIApplication *)application

刷新用户界面。

由于我的应用程序不会被终止并在后台运行,因此当应用程序进入活动状态时,会调用此方法并正常工作。
但在我的一个视图控制器中,我正在创建 CLLocationManager 对象

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

问题是,当这个位置管理器对象被创建时,应用程序委托的“applicationDidBecomeActive”也被调用,这对我来说不是必须处理的。初始化位置管理器对象时如何忽略调用?

【问题讨论】:

    标签: ios uiapplicationdelegate


    【解决方案1】:

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

    【讨论】:

    • 处理所有东西的标志不是正确的方法。如果您继续添加标志,代码将充满标志,仅此而已。
    猜你喜欢
    • 2014-09-20
    • 2016-05-07
    • 1970-01-01
    • 2015-02-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多