2008-12-15 97 views
11

当我的应用程序在iPhone模拟器运行时,委托方法iPhone模拟器和applicationWillTerminate()

- (void)applicationWillTerminate:(UIApplication *)application 

只叫我第一次打在iPhone模拟器的home键。

在主页按钮被按下并且应用程序再次启动后,点击主页按钮不会调用委托方法。

这是怎么回事?我误解了一些根本性的东西吗?

回答

24

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

+0

是的你是对的。第一次返回到主屏幕后,不会出现对NSLog()的调用。然而,从代理调用的所有其他函数调用继续按照惯例运行。谢谢! – firstresponder 2008-12-15 11:34:07

4
- (void)applicationWillTerminate:(UIApplication *)application 

当应用程序“终止”时被调用。 如果您使用的是iOS,那么当您按下主屏幕按钮时,应用程序将不会终止,除非您已禁用了您应用程序的多任务功能,或者用户没有“支持多任务”设备。

- (void)applicationDidEnterBackground { 

现在在用户按下home键时使用。除非(正如我之前所说),您已禁用多任务处理您的应用程序,或者用户没有“支持多任务处理”设备。