Kom je er niet uit: mail voor een aanwijzing.
Deze bijeenkomst heeft als thema 'iTunes'. Ons doel is om een audio-speler te maken die het mogelijk maakt om muziek uit de iTunes bibliotheek af te spelen.
iTunes bewaart de bibliotheek in twee aparte bestanden. Het eerste bestand bevat alle informatie en is alleen voor iTunes zelf bedoeld. Daarnaast bewaart iTunes de belangrijkste informatie uit de bibliotheek in een extra XML bestand, te vinden in ~/Music/iTunes/iTunes Music Library.xml
. Dit bestand is speciaal voor gebruik door andere programma's, ook van Apple (Zie ook deze pagina). We gaan dit bestand XML bestand gebruiken om 'tunes' te vinden op de computer.
Een belangrijk kenmerk van het bibliotheekbestand is dat het niet alleen een XML bestand is, maar ook een Property List.
Property lists spelen een belangrijke rol binnen Cocoa en komen vaak goed van pas bij het opslaan van gegevens.
De iTunes bibliotheek vormt het middelpunt van ons programma. In de Model-View-Controller methodologie is de bibliotheek het model.
Voor het inlezen van het iTunes XML bestand ontwerpen we een nieuwe klasse die we ITunesLibrary
zullen noemen. ITunesLibrary
klasse heeft twee variabelen; tracks
en playlists
. tracks
is een dictionary met daarin voor elke track in de bibliotheek een dictionary met gegevens zoals artiest, bestandsnaam, etcetera. Deze dictionaries kopiƫren we direct uit het XML bestand. De playlists
variabele is een array van dictionaries die ieder een playlist vertegenwoordigen. Iedere playlist dictionary heeft een naam en een array met tracks.
De interface van ITunesLibrary
ziet er dan als volgt uit:
@interface ITunesLibrary : NSObject { @private NSDictionary *tracks; // key: uniek track ID NSArray *playlists; // dictionaries met keys: 'naam' en 'tracks' } // open het xml bestand en lees de playlists en tracks - (void)open; // accessors - (NSDictionary *)tracks; - (void)setTracks:(NSDictionary *)newTracks; - (NSArray *)playlists; - (void)setPlaylists:(NSArray *)newPlaylists; @end
In de open:
methode wordt het XML bestand geopend en de track- en playlistinformatie ingelezen.
Implementeer ITunesLibrary (zover als je kunt). Dit vormt het startpunt van bijeenkomst 4.