2010-06-05 3 views
1

j'ai une section de code qui télécharge une image:UIActivityView et le blocage

[activity startAnimating]; 
[self uploadImage:img Session_id:appDelegate.sessionID PlaceID:place.placeID Comment:comment.text]; 
[activity stopAnimating]; 

Je suis sûr que l'activité est câblé correctement à un UIActivityViewIndicator, mais il ne montre jamais. Dans la fonction uploadImage, j'ouvre une connexion au serveur et démarre le téléchargement. Quelqu'un at-il un exemple ou une explication possible pour expliquer pourquoi la vue d'activité ne s'afficherait pas?

+0

Avez-vous ajouté l'activitéView en tant que sous-vue à une vue à l'écran? Ou est-il défini dans Interface Builder et attribué à une prise? Je suppose que le dernier, basé sur votre message. Autant que je sache, UIActivityIndicator ne cesse de tourner si le thread principal est bloqué. Peut-être que c'est sur un fond blanc et le style de l'activité Indicateur mis en blanc? – Joost

Répondre

2

Si vous effectuez le téléchargement sur le thread principal, il est bloqué et l'interface utilisateur ne peut pas être mise à jour.

Je suggère de l'exécuter sur un fil de fond.

+1

jetez un oeil à NSURLConnection et NSURLRequest (et son ami mutable). Ils vous permettront de faire des connexions et des demandes aux services Web de manière asynchrone, laissant votre thread principal et votre interface utilisateur débloqués. – Jasarien