[Résolu] Question architecture !
Bonjour à tous,
J'ai un petit soucis concernant une application pour un de mes clients.
Je n'ai pas le code avec moi alors je vais essayer d'être clair.
Sur la couche la plus basse je récupère via une URL des images en asynchrone grâce au NSURLConnectionDelegate (Objet : ImagesHttpStore). Ensuite, au même niveau j'ai un objet qui stocke dans un fichier un tableau d'image (Objet : ImagesLocalStore).
Au niveau au-dessus, je me suis créé un manager (ImagesManager) permettant de récupérer s'ils existent les images en local (ImageLocalStore) afin d'être le plus réactif possible pour l'IHM, sinon je fais une action http (ImageHttpStore). Mes deux stores notifient le manager via KVO.
ça marche très bien si je dois récupérer une liste en local ou si je dois récupérer qu'une image via http.
Mon problème c'est lorsque je fais une boucle sur ImageHttpStore, là je télécharge tout le temps la même image n fois suivant la boucle ... Pourtant les idImage, nécessaire pour la requête, sont corrects.
J'ai l'impression que NSURLConnection ne gère pas trop ses queue naturellement ... Mais ça m'étonnerait quand même. J'essaye de vous envoyer le code ce soir.
D'ici là avez un avis ? (Je me doute que c'est compliqué sans le code ... Mais là je suis à mon boulot de jour )
K.
Réponses
Je ne sais pas si je comprends bien la chose, mais tu sais qu'il te faut un NSURLConnection par fichier à télécharger ? Personnellement je me suis fait une lib à base de NSOperation et de NSThread géré à la main qui embarque tout le packaging des NSOperation, ce qui me permet d'avoir un système assez simple à utilisé, respectant les règles d'optimisation pour iOS et l'usage du pipelining sans trop me prendre la tête.
C'est chiant à écrire à la base mais en prenant le temps de le faire ça permet un usage très clean d'une API de téléchargement synchrone ET asynchrone ET utilisant la même stack d'opération et les mêmes optimisation dans les deux cas.
Oui tout à fait. En fait j'ai trouvé mon problème hier soir.
Ce que je faisais, c'était un appel à la classe ImageHttpStore dépendant de NSURLConnectionDelegate pour chaque image que j'ai besoin.
Mais je pense qu'à un moment le système partait dans les choux ...
Je me suis géré moi même les appels avec GCD et ça marche nickel maintenant.
K.
Merci de faire attention à ce que tu écris J'ai effacé la dite ligne. Même si c'est un peu utilisé comme une "expression", ça peut quand même offenser des gens.
Aussi, si ton problème est résolu, tu peux modifier le titre du topic et y ajouter [résolu]
OOups ......... Vraiment Désolé .....
Je n'ai pas pensé à ce problème en écrivant le post .... J'aurais dû réfléchir un peu plus ...
Question : Comment on modifie le topic ? Je n'arrive pas à trouver le bouton modification qui va bien.
K.
Pour cela tu vas sur le premier post de ton fil de discussion et tu fait modifier puis utiliser l'éditeur complet. Normalement tu pourras faire la modification.
C'est pas grave, moi même ça m'arrive d'utiliser cette expression, mais j'évite de le faire en public :P
Pour le topic, walsayer t'as donné la bonne réponse