I am trying to get the data for each track in a MusicItemCollection into a DataFrame. The only way I know to go about this is to use a for-in loop, but this creates a DataFrame for each track instead of a DataFrame for all of the tracks. My code is:
let albumTracks = album?.tracks
for tracks in albumTracks {
let dataFrame: DataFrame = [
"track": [tracks.trackNumber],
"title": [tracks.title],
"artist": [tracks.artistName],
"release date": [tracks.releaseDate?.formatted(date: .long, time: .omitted) ?? "not available"],
"duration": [tracks.duration],
"isrc": [tracks.isrc]
]
print(dataFrame)
I have also tried
for tracks in self.albumTracks {
var dataFrame = DataFrame.init()
let trackNumColumn = Column.init(name: "track", contents: [String(tracks.trackNumber!)])
dataFrame.append(column: trackNumColumn)
let titleColumn = Column.init(name: "title", contents: [tracks.title])
dataFrame.append(column: titleColumn)
let artistColumn = Column.init(name: "artist", contents: [tracks.artistName])
dataFrame.append(column: artistColumn)
let releaseDateColumn = Column.init(name: "release date", contents: [tracks.releaseDate?.formatted(date: .long, time: .omitted)])
dataFrame.append(column: releaseDateColumn)
let idColumn = Column.init(name: "id", contents: [String(tracks.id.rawValue)])
dataFrame.append(column: idColumn)
print(dataFrame)
Both of these methods work outside of a loop according to the tech talks video: https://developer.apple.com/videos/play/tech-talks/10100/ , but I cannot figure out how to call the individual tracks outside of a loop
Thanks