如果App崩溃,如何从iOS App中删除缓存文件

时间:2014-09-23 10:19:57

标签: ios objective-c

我将我的应用中的一些文档(图像和PDF')保存到iPad目录中。现在,一旦操作完成,需要删除这些客户敏感的文档,​​用户注销。  在Log off事件的情况下,我正在处理目录中的删除,但是如果应用程序突然崩溃,如何实现此目的。

3 个答案:

答案 0 :(得分:5)

您需要添加UncaughtExceptionHandler,并删除缓存。

void myHandler(NSException *exception)
{
  // Remove caches...
  .....
  // And maybe let the app to crash?
  exit(0);
}

- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSSetUncaughtExceptionHandler(&myHandler);
     ....
}  

因此,当引发未处理的NSException时将调用myHandler

答案 1 :(得分:1)

我的应用程序中有一些代码可以在崩溃时写入日志。也许你可以在流程消失之前使用它来执行某些操作。

这是:

@interface AppDelegate()

void uncaughtExceptionHandler(NSException *exception);

@end


@implementation AppDelegate

void uncaughtExceptionHandler(NSException *exception) 
{
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"app_did_crash"];
     [[NSUserDefaults standardUserDefaults] synchronize];
}

-(BOOL)application:(UIApplication *)application 
{
     // Get crash log
     NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
}

答案 2 :(得分:0)

我认为你需要一个使用NSSetUncaughtExceptionHandler

的异常处理程序
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    NSSetUncaughtExceptionHandler(&myExceptionHandler);
}

void myExceptionHandler(NSException *exception)
{
    // do something before app crash here
}