Ios applicationWillTerminate:未被调用

Ios applicationWillTerminate:未被调用,ios,cocoa-touch,uiapplicationdelegate,application-lifecycle,Ios,Cocoa Touch,Uiapplicationdelegate,Application Lifecycle,我正在使用applicationWillTerminate:来保存一些最后的东西。但问题是它从未被调用过。如果我在方法顶部执行类似操作:NSLog(@“something”)它不会被调用,也不会输出到控制台 有人知道为什么会这样吗?来自苹果文档: 对于不支持后台执行或链接到iOS 3.x或更早版本的应用程序,当用户退出应用程序时,始终调用此方法对于支持后台执行的应用程序,当用户退出应用程序时,通常不调用此方法,因为在这种情况下,应用程序只是移动到后台。但是,在应用程序在后台运行(未挂起)并且系统

我正在使用
applicationWillTerminate:
来保存一些最后的东西。但问题是它从未被调用过。如果我在方法顶部执行类似操作:
NSLog(@“something”)它不会被调用,也不会输出到控制台

有人知道为什么会这样吗?

来自苹果文档:

对于不支持后台执行或链接到iOS 3.x或更早版本的应用程序,当用户退出应用程序时,始终调用此方法对于支持后台执行的应用程序,当用户退出应用程序时,通常不调用此方法,因为在这种情况下,应用程序只是移动到后台。但是,在应用程序在后台运行(未挂起)并且系统出于某种原因需要终止它的情况下,可以调用此方法

如果您的应用程序已启用后台功能,请使用:


-(void)applicationidenterdbackground:(UIApplication*)应用程序

使用
applicationidenterdbackground:
。在多任务系统中,当您按下home(主页)按钮时,应用程序不会终止。

来自核心应用程序设计和应用程序生命周期:

如果应用程序当前已挂起,则不会调用applicationWillTerminate:方法


如果您是针对iOS 4.0进行链接,还应将数据保存在
ApplicationIdentinterBackground:
步骤1:command+shift+h(双击(选项卡))

步骤2:移动应用程序顶部(终止)


步骤3:应用程序将终止工作

为什么我的DiEndCustomingItems方法也没有被调用,当我将NSLog放入其中时,它不会输出任何内容。一个重要的警告:至少在iOS 6上,
applicationWillTerminate:
如果用户在应用程序仍在前台时关闭设备电源,则在应用程序未被后台处理的情况下调用。Not applicationWillEnterBackground:,该方法不存在,请使用applicationIdentinterbackground:@CocoaFu:谢谢,已修改