NSUserDefaults saves details sometimes and doesn&#

2019-07-20 07:13发布

问题:

I use NSUserDefaults to save some data locally. But the problem is it doesn't save the data all the times.

For instance:

While an app is crashing I save the execption related informations using NSUserDefaults

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  NSSetUncaughtExceptionHandler(&onUncaughtException);

}

void onUncaughtException(NSException* exception)
{
 //save exception related details using NSuserdefaults
}

回答1:

The problem is that you have to synchronize thne NSUserDefaults while crashing.Since you are not doing that, the exception details disappear

Call the synchronize method on app termination:

- (void)applicationWillTerminate:(UIApplication *)application
{
       [[NSUserDefaults standardUserDefaults] synchronize];
}