2010-09-20 5 views
0

Bonjour les gens qui sont beaucoup plus intelligents que moi,UIImageView et XML analysables données

j'ai obtenu deux éléments XML, l'un est le titre et l'autre URL de l'image. J'essaie de montrer à la fois UILabel et UIImageView. Mon problème est que l'image ne s'affiche pas.

Voici ce que j'ai fait jusqu'ici ... Si je passe _track.consultant_pic dans un UILabel, je peux voir la chaîne (http://mysite.com/ted.jpg) dans mon étiquette. Donc, je sais que les données sont transmises à partir du XML. Si j'écris le chemin actuel de l'url dans l'URL NSURL *, cela fonctionne. Donc, je sais que mon code d'image de UIImage à UIImageView est correct.

+0

Peut-on voir le code pour la vue? Spécifiquement view_consultant_pic –

Répondre

0

Merci pour aider les gars, je pense que nous avons un gagnant:

Dans le journal, il montre mon élément retourné à la analysable ligne suivante au lieu de rincée avec mon code temporel. Je ne l'ai jamais vraiment remarqué avant car l'url correspondait bien à mon UILabel. Et toujours juste pensé que mon URL était trop longue pour la fenêtre de journal afin qu'il soit poussé à la ligne suivante.

J'ai effectué mon XML sans espaces

<track_title>Sleeping and selling</track_title><consultant_pic>http://localhost:8888/IMAGES/ted.jpg></consultant_pic> 

Au lieu de:

<track_title>Sleeping and selling</track_title> 
<consultant_pic>http://localhost:8888/IMAGES/ted.jpg</consultant_pic> 
0

Il se peut que certains caractères codés dans votre URL empêchent le chargement du formulaire d'image. Voir this page pour plus d'informations. Que dit NSLog(_track.consultant_pic);? Repérez-vous des caractères encodés ici?

+0

J'ai essayé de me changer XML pour: @ "http: // localhost: 8888/IMAGES/ted.jpg" Donc je ne pense pas que ce soit un caractère encodé? – slowman21

0

Je pense que votre meilleur pari serait d'utiliser dataWithContentsOfURL:options:error: et inspecter l'objet NSError pour toute information utile sur ce qui a mal tourné, comme ceci:

NSError *error = nil; 
NSData *data = [NSData dataWithContentsOfURL:url options:0 error:&error]; 
if (error) { 
    NSLog(@"%@: %@", [error localizedDescription], [error localizedFailureReason]); 
} 

Sur une note sans rapport, votre méthode a une fuite de mémoire : un UIImageView conserve son image, vous devez donc ajouter [currentImage release]; à la fin de votre méthode.

EDIT: En regardant le code que vous venez de coller, il pourrait simplement être que vous avez simplement oublié de connecter la prise view_consultant_pic à votre TracksDetailViewController dans Interface Builder. Vérifiez-le avant de faire quoi que ce soit d'autre, c'est un oubli si commun.

+0

Merci d'avoir regardé Cassarani. J'ai ajouté la version. S'il vous plaît laissez-moi savoir si je l'ai au bon endroit. Toujours un noob à cela. Aussi pouvez-vous m'aider avec un peu plus de code? Comment écrire en option: erreur? – slowman21

+0

J'ai édité ma réponse pour inclure un exemple de 'dataWithContentsOfURL: options: error', et une suggestion quant à ce qui peut causer le problème après tout. –