iOS应用程序已从后台关闭

iOS应用程序已从后台关闭,ios,objective-c,ios8,nsuserdefaults,Ios,Objective C,Ios8,Nsuserdefaults,我制作了一个iOS应用程序,我使用的是NSUserDefaults。如果应用程序从后台关闭,我想删除存储在NSUserDefaults中的字符串。有人能给我找到从后台关闭应用程序的解决方案吗。当你的应用程序从后台运行时,你不会收到任何通知。该应用程序在没有任何警告的情况下被操作系统杀死 当你的应用程序进入后台时,你无法知道是重新启动还是返回前台 你为什么需要这个?如果您在NSUSerDefaults中保存了某些内容,那么它应该是持久的。如果可能,请告诉我们您需要此功能的场景,以便我们为您提供其他

我制作了一个iOS应用程序,我使用的是
NSUserDefaults
。如果应用程序从后台关闭,我想删除存储在
NSUserDefaults
中的字符串。有人能给我找到从后台关闭应用程序的解决方案吗。

当你的应用程序从后台运行时,你不会收到任何通知。该应用程序在没有任何警告的情况下被操作系统杀死

当你的应用程序进入后台时,你无法知道是重新启动还是返回前台


你为什么需要这个?如果您在NSUSerDefaults中保存了某些内容,那么它应该是持久的。如果可能,请告诉我们您需要此功能的场景,以便我们为您提供其他方法。

u可以通过两种方式清除您的
NSUserDefaults
,一种应用程序将终止另一种didfishLaunchingWithOptions仅在初始时间调用

// if u terminated your application surly it remove the all keys and other local DB 

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


 [[NSUserDefaults standardUserDefaults]removeObjectForKey:@"addyourkeys"]; 
 [[NSUserDefaults standardUserDefaults] synchronize];

 }
选择编号:2

   // it is called only initially time , u can also follow your work at here.. but no need at here the applicationWillTerminate will follow the work 

- (void)applicationDidFinishLaunching:(UIApplication *)application
{


 [[NSUserDefaults standardUserDefaults]removeObjectForKey:@"addyourkeys"]; 
 [[NSUserDefaults standardUserDefaults] synchronize];

 }

“关闭”是什么意思?如果用户强制退出您的应用程序,是否意味着您要清除
NSUserDefaults
?您可以通过两种方式清除您的
NSUserDefaults
,一个应用程序将终止另一个应用程序。只有在初始时间才调用didFinishLaunchingWithOptions。。已经解决了你为什么要这么做?存储在NSUserDefaults中的数据应该是持久的。如果你不想让它持续存在,为什么要将它存储在那里?@Anbu.Karthik:将此作为答案发布,以便OP可以接受它…
applicationWillTerminate
是你的第一句话…
applicationWillTerminate
在你的应用程序从后台被强制终止或由于内存压力而被终止时不会被调用。是的,我测试了应用程序WillTerminate不是called@thavasidurai:你是如何测试的?您是否将
NSLog(@“applicationWillTerminate”)内部<代码>-(无效)应用程序将终止:(UIApplication*)应用程序{
在AppDelegate中?我已测试并正在运行…我保留了断点,但未调用它。我将通过放置NSLog重试,并让您知道