我正在将一些文档(图片和PDF文件)保存在我的应用程序中的iPad目录中。由于这些文档与客户敏感信息相关,需要在操作完成后,用户注销时删除。我已经处理了注销事件时从目录中删除文档,但是如果应用程序突然崩溃,如何实现自动删除呢?
我正在将一些文档(图片和PDF文件)保存在我的应用程序中的iPad目录中。由于这些文档与客户敏感信息相关,需要在操作完成后,用户注销时删除。我已经处理了注销事件时从目录中删除文档,但是如果应用程序突然崩溃,如何实现自动删除呢?
您需要添加一个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将被调用。
这是代码:
@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);
}
我认为你需要使用NSSetUncaughtExceptionHandler来编写异常处理程序
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
NSSetUncaughtExceptionHandler(&myExceptionHandler);
}
void myExceptionHandler(NSException *exception)
{
// do something before app crash here
}