2009-09-07 9 views
0

J'essaie de comprendre comment utiliser SAX et j'ai pensé qu'un bon point de départ était l'exemple de TopSongs trouvé sur le iPhone Dev Center. J'en profite pour la plupart, mais quand il s'agit d'atteindre des Attributs et des Valeurs dans un nœud, je ne peux trouver un bon exemple nulle part. Le XML a un chemin vers une URL pour le coverArt. Et le noeud XML ressemble à ceci.Comment analyser avec SAX en utilisant Attributs & Valeurs à un chemin d'URL en utilisant iPhone SDK?

<itms:coverArt height="60" width="60">http://a1.phobos.apple.com/us/r1000/026/Music/aa/aa/27/mzi.pbxnbfvw.60x60-50.jpg</itms:coverArt> 

Ce que j'ai essayé est-ce pour le startElement ...

((prefix != NULL && !strncmp((const char *)prefix, kName_Itms, kLength_Itms)) && 
     (!strncmp((const char *)localname, kName_CoverArt, kLength_Item) && 
     !strncmp((const char *)attributes, kAttributeName_CoverArt, kAttributeLength_CoverArt) && 
     !strncmp((const char *)attributes, kValueName_CoverArt, kValueLength_CoverArt) || 
     !strncmp((const char *)localname, kName_Artist, kLength_Artist) || 

et le ramasser à nouveau avec juste la localname à la fin comme celui-ci.

if (!strncmp((const char *)localname, kName_CoverArt, kLength_CoverArt)) { importer.currentSong.coverArt = [NSURL URLWithString:importer.currentString]; 

La trace est - [Song setCoverArt:]: sélecteur non reconnu envoyé à l'instance.

Répondre

0

Il semble que vous n'avez pas synthétisé la propriété coverArt dans votre classe Song (en utilisant le mot-clé @synthesize). C'est ce qui crée la méthode -[Song setCoverArt:] qui est appelée lorsque vous définissez la propriété coverArt sur currentSong.

+0

Merci pour votre suggestion, Il suit la même structure que les autres nœuds qui sont définis comme étant @dynamic dans la classe Song. Mais je pense que vous avez raison de ne pas ajouter correctement au modèle de données. J'ai depuis essayé d'ajouter juste un autre noeud sans attributs et il a produit le même résultat d'erreur. – Jim

+0

Je n'avais pas ajouté le nouvel attribut au fichier de modèle de données qui est ce qui a jeté l'erreur. Maintenant, je n'ai pas l'erreur mais je ne reçois pas les données. Il doit donc y avoir quelque chose qui manque à la structure ci-dessus. – Jim

+0

Je peux atteindre les données sous la forme d'une chaîne avec un seul appel sur le nœud, mais le problème est qu'il existe trois nœuds pour différentes tailles d'image. Donc je dois encore savoir comment atteindre les autres. – Jim

Questions connexes