【问题标题】:iPhone simulator and applicationWillTerminate()iPhone模拟器和applicationWillTerminate()
【发布时间】:2010-09-26 22:48:35
【问题描述】:

当我的应用在 iPhone 模拟器中运行时,委托方法

- (void)applicationWillTerminate:(UIApplication *)application

仅在我第一次点击 iPhone 模拟器的主页按钮时调用。

按下home键并再次启动应用后,点击home键不会调用委托方法。

这里发生了什么?我误解了一些基本的东西吗?

【问题讨论】:

    标签: iphone ios-simulator


    【解决方案1】:

    我怀疑它被调用了,但你会感到困惑,因为在你点击模拟器中的 Home 按钮后,你已经结束了 Xcode 中的当前会话。您的applicationWillTerminate: 方法中可能有一个NSLog,是吗?一旦你点击 Home 按钮,NSLogs 将不再出现在 Xcode 的运行控制台中。如果你打开/Applications/Console.app 我希望他们会出现在那里。

    【讨论】:

    • 是的,你是对的。第一次返回主屏幕后,不会出现对 NSLog() 的调用。但是,从委托调用的所有其他函数调用继续照常运行。谢谢!
    • 在您终止程序并返回 Springboard 后,Xcode 不再关注 iPhone 模拟器的日志输出。除了输出不会进入 Xcode 的运行日志之外,所有功能仍然完全相同。
    • 我能区分(应用程序因某些电话而终止并从之前的状态恢复)和(应用程序启动)吗?
    【解决方案2】:
    - (void)applicationWillTerminate:(UIApplication *)application
    

    在应用程序“终止”时调用。 如果您使用的是 iOS,则应用不会在按下主页按钮时终止,除非您为应用禁用了多任务处理或用户没有“支持多任务处理”的设备。

    - (void)applicationDidEnterBackground {
    

    现在在用户按下主页按钮时使用。除非(如我之前所说)您为您的应用禁用了多任务处理,或者用户没有“支持多任务处理”的设备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      相关资源
      最近更新 更多