2010-06-24 6 views
2

est-il moyen de charger les fichiers locaux dans iphone asynchrone? Je charge UIImages pour mon uitableview en utilisant ceci:iphone charger le fichier asynchrone?

NSData *imageData = [[NSData alloc] initWithContentsOfFile:fileName]; 
UIImage *cachedImage = [[[UIImage alloc] initWithData:imageData] autorelease]; 

mais il est lent, parce que thread principal est verrouillé ou quelque chose jusqu'à ce que NSData se termine le chargement du fichier et l'interface utilisateur ne répond plus. Y at-il quelque chose comme NSURLConnection mais pour les fichiers locaux? Donc, je peux simplement charger le fichier sans geler l'interface utilisateur, et quand il se termine le chargement, un gestionnaire envoie une notification ou quelque chose comme ça.

Répondre

3

Vous pouvez utiliser NSOperationQueue et NSInvocationOperation pour appeler une procédure 'load'. Ensuite, à partir de la procédure de chargement, utilisez simplement 'performSelectorOnMainThread' pour mettre à jour. Voir: http://gist.github.com/375559 pour un exemple détaillé.

+0

merci, je vais essayer – Mike