我如何告诉iOS我不希望该应用程序留在后台?

有没有办法告诉iOS我不希望我的应用程序留在后台? 换句话说,我可以告诉我的应用程序在进入后台时自行退出吗?

我在我的UITbarController中的一个选项卡中使用ABPeoplePickerNavigationController 。 但是,只要到达[ABMembersViewController applicationDidResume] ,它就会以EXC_BAD_ACCESS崩溃。

堆栈跟踪如下:

 0x00cc5994  mov 0x8(%eax),%eax 0x00cc5991  mov 0x8(%ebp),%eax 0x00cc598d  mov %eax,0x4(%esp) 0x00cc5987  mov 0x4e082(%ebx),%eax 0x00cc597f  movl $0x0,0x8(%esp) 0x00cc597e  pop %ebx ABCGetGroupCount -[ABAccountsAndGroupDataSource hasMultipleAccountsOrGroups] -[ABMembersViewController updateNavigationButtonsInSearchMode:animated:] -[ABMembersViewController updateNavigationButtonsAnimated:] -[ABMembersViewController applicationDidResume] 

因此,为了解决它,我认为如果我能够强制应用程序自行终止,我可以很好地阻止程序通过这部分代码。

在info.plist中,将UIApplicationExitsOnSuspend设置为yes

虽然导致应用程序退出而不是暂停可能会通过隐藏它来解决问题,但您应该正确解决问题,并确保您的应用程序可以应对暂停。

用户(在支持它的设备上)通常希望应用程序暂停,并且当他们因任何原因切换到另一个应用程序时,可能会惊讶于您的应用程序崩溃(这是它们看起来的样子)。

如果要回到以前的位置,这将特别烦人,比重新启动应用程序需要更多的努力。

继续……你知道这是有道理的……做得好!

如果没有看到代码的其余部分,就很难确定问题所在。 通常,EXC_BAD_ACCESS表示您尝试将消息发送到已发布的对象。 你可以在viewWillDisappear或类似的方法中发布一些东西,而不是在viewWillAppear中重新初始化它吗?