0

I am fairly new to SwiftUI but am pulling my hair out trying to display text from two ForEach loops. I am working on a song app that would display lyrics in stanzas. My data is one array Lyrics that holds Verses which is another array. Each verse is a stanza. And each verse has a string array that stores the lyrics for one line.

//Lyrics variable

@Published var lyrics: [Verse]? = [Verse]()

//Verse structure storing each line

struct Verse: Codable, Identifiable {
    let id = UUID()
    let verseContent: [String]
}

The part I am having trouble is in implementation of getting all of the information into Text within my View. One ForEach loop works and I can get the first line of each of my stanzas as follows

//Builds Fine with this code

 ForEach(lyrics) { verse in
                   Text(verse.verseContent[0])
               }

But the problem is when I try and do a nested ForEach to get all of the lines in each stanza with the following.

    return AnyView(
           ForEach(lyrics) { verse in
               ForEach(verse.verseContent { line in 
                 Text(line)
               )
           }
    )

When I try this I get the following error Explicitly specify the generic arguments to fix this issue Generic parameter 'ID' could not be inferred

Referencing initializer 'init(_:content:)' on 'ForEach' requires that 'String' conform to 'Identifiable'

1 Answer 1

0

Solved! It just needed .self for both of the ForEach statements

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.