61 votes

Méthode de synchronisation NSUserDefaults

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"xxxxxxxx" forKey:@"name"];

[defaults synchronize];

J'ai besoin de savoir pourquoi dois-je utiliser la dernière ligne du code ci-dessus [defaults synchronize] ? Quel est le but de l'utiliser? Est-ce un must ?

23voto

Seryozha Points 262

Vous n'avez plus besoin d'écrire cette ligne.

La référence de la méthode de la documentation mise à jour

Attend les mises à jour asynchrones en attente de la base de données par défaut et les retours ; cette méthode est inutile et ne doit pas être utilisée.

Commentaires sur la méthode expliquant ce qu'il faut faire.

      /*!
     -synchronize is deprecated and will be marked with the NS_DEPRECATED macro in a future release.

     -synchronize blocks the calling thread until all in-progress set operations have completed. This is no longer necessary. Replacements for previous uses of -synchronize depend on what the intent of calling synchronize was. If you synchronized...
     - ...before reading in order to fetch updated values: remove the synchronize call
     - ...after writing in order to notify another program to read: the other program can use KVO to observe the default without needing to notify
     - ...before exiting in a non-app (command line tool, agent, or daemon) process: call CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication)
     - ...for any other reason: remove the synchronize call
      */
     open func synchronize() -> Bool

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X