我们的一位笔测试者提出了安全问题。他希望我们在应用程序崩溃和应用程序转到后台时删除sqlite.wal。我们在appdelgate类中编写了一个函数,它将删除wal文件。
请在下面找到代码段。
void uncaughtExceptionHandler(NSException *exception)
{
id appdelegate = [[UIApplication sharedApplication] delegate];
//Clear cache
for(NSPersistentStore *store in [appdelegate persistentStoreCoordinator].persistentStores)
{
NSLog(@"\n\nUNCAUGHT EXCEPTION --- %@\n\n",[exception description]);
NSError *error;
NSURL *storeURL = store.URL;
NSPersistentStoreCoordinator *storeCoordinator = [appdelegate persistentStoreCoordinator];
[storeCoordinator removePersistentStore:store error:&error];
[[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];
}
[appdelegate setPersistentStoreCoordinator:nil];
[appdelegate setManagedObjectContext:nil];
NSManagedObjectModel *managedObjectModel = [appdelegate managedObjectModel];
managedObjectModel = nil;
}
我们的笔测试人员使用iExplorer工具访问sqlite.wal文件。我在mac中安装并测试过的相同工具。我发现的很奇怪。相同的代码在mac matchie中正常工作。但是在窗口中我们仍然可以看到wal文件。
请建议我解决这个问题。提前谢谢。