Donc je sauvegarde de petites images à des données de base qui prennent un vraiment peu de temps pour enregistrer, comme .2 secondes, mais je le fais pendant que l'utilisateur feuillette une vue de défilement afin d'améliorer la réactivité Je déplace l'économie à un fil. Cela fonctionne très bien, tout est enregistré et l'application est réactive. Cependant, il y a une chose dans le doco core-data + multithread qui m'inquiète:Sauvegarde des données de base dans un thread, comment assurer son écriture avant de quitter?
"Dans Cocoa, seul le thread principal est non-détaché.Si vous devez enregistrer sur d'autres threads, vous devez écrire un code supplémentaire tel que le thread principal empêche l'application de quitter jusqu'à ce que toute l'opération de sauvegarde soit terminée. "
Ok, comment faites-vous cela? Il ne dure que ~ .2 secondes et il est rare qu'il se produise puisque la chance de l'application de quitter est très faible. Comment puis-je exécuter quelque chose sur le thread principal qui empêchera l'application de quitter ET ne bloquera pas l'interface graphique?
Merci
En lisant le doco, on dirait que ça va marcher, je vais essayer! – Shizam
Seriez-vous prêt à élargir votre réponse et donner un exemple? J'essaie de savoir comment configurer cela, mais je n'arrive pas à trouver un exemple. J'en ai mis un où un drapeau a été mis à false, et le "threadDone" l'a mis à vrai. A fonctionné correctement dans le simulateur, mais pas après avoir téléchargé depuis iTunes. – James
@James Voici ce que j'ai fait en un mot: http://pastie.org/4663834 Ce n'est pas seulement de mettre un drapeau, c'est un drapeau d'application. Vous pouvez en savoir plus sur beginBackgroundTaskWithExpirationHandler: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html – Shizam