Отображение текста из вложенного многомерного ForEach в SwiftUI - PullRequest
0 голосов
/ 03 апреля 2020

Я довольно новичок в SwiftUI, но пытаюсь отобразить текст из двух циклов ForEach. Я работаю над приложением песни, которое будет отображать текст в строфах. Мои данные - это один массив Lyrics, содержащий стихи, который является другим массивом. Каждый стих - это строфа. И у каждого стиха есть строковый массив, в котором хранится текст одной строки.

// Переменная Lyrics

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

// Структура стиха, хранящая каждую строку

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

У меня возникла проблема с реализацией получения всей информации в текст в моем представлении. Один ForEach l oop работает, и я могу получить первую строку каждой из моих строф следующим образом

// Создает Fine с этим кодом

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

Но проблема заключается в том, когда я пытаюсь и сделайте вложенный ForEach, чтобы получить все строки в каждом разделе со следующим.

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

Когда я пытаюсь это сделать, я получаю следующую ошибку. Явно укажите аргументы generi c для решения этой проблемы. Generi c параметр 'ID' не может быть выведен

Ссылка на инициализатор 'init (_: content :)' в 'ForEach' требует, чтобы 'String' соответствовал 'Identifiable'

1 Ответ

0 голосов
/ 03 апреля 2020

Решено! Это просто необходимо .self для обоих операторов ForEach

...