【问题标题】:App Delegate's lifecycle (iOS)App Delegate 的生命周期 (iOS)
【发布时间】:2012-08-20 17:03:39
【问题描述】:

对不起,如果这是一个愚蠢的问题,但我正在调试我的应用程序中的一个悬空指针问题,我需要知道 - 应用程序是否可以在没有第一个 enterBackground 的情况下使用 resignActive? 到becomeActive 没有第一个enterForeground

我的情况 - 我有一个类(称为“连接”)来管理所有应用程序的请求/连接。只要应用程序还活着,它就必须可用,真的。

在我的-didFinishLaunchingWithOptions 中,我初始化了一个 Connection 实例并设置了一些参数。在我的-applicationWillEnterBackground 中,我暂停了 Connection 的操作。

并且,在我的-applicationWillEnterForeground 中,我检查连接实例是否仍然存在。如果是,只需恢复操作,否则会创建一个新操作。

当我让应用程序运行一段时间(一个小时左右,无论是否返回主屏幕)时,应用程序都会因此错误而崩溃。

"2012-08-19 13:08:42.708 Picsilk[11108:707] *** -[Connection respondsToSelector:]: message sent to deallocated instance 0x24e120"

“Connection”类只是一个简单的 NSObject 子类,它管理一个 ASINetworkQueue 实例并处理我存储用户令牌和验证对我的 api 的请求的一些特定需求。

这个类的一个实例由应用委托创建和管理。我的各种视图控制器使用应用程序委托来访问连接,它会自动处理队列(以及非队列请求)

当然,我缺少一些对我理解这个 SDK 非常简单和基本的东西,请帮忙。 :]

【问题讨论】:

    标签: iphone ios5 appdelegate


    【解决方案1】:

    当有来电或出现其他通知时,该应用会收到UIApplicationWillResignActiveNotification。所以,是的,有可能“应用程序在没有先进入背景的情况下退出活动”。

    【讨论】:

    • 我明白了,有道理。反过来呢?应用程序是否可以直接从非活动状态变为活动状态而无需“在后台”?谢谢。
    • 当您关闭呼叫时,应用程序会直接恢复活动状态,而不会进入后台。所以,再次,是的。
    • 太棒了,我把正确的方法放在 resignActive 和 becomeActive 中,我没有任何问题。感谢您的帮助:]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2018-07-27
    • 2013-06-06
    • 2011-07-30
    相关资源
    最近更新 更多