如何在 SwiftUI 中显示字符串数组

How to show a String Array in SwiftUI

我正在构建一个教育应用程序,我在其中进行分类,然后显示每个类别中的故事。

我正在体验的使用是如何显示一个字符串数组。我可以毫无问题地显示字符串。希望能帮到你。

这是正在运行并显示“课程”(在本例中为故事)的详细视图代码:

struct StoryDetailView: View {
    
    @EnvironmentObject var model: ContentModel
    
    var body: some View {
        
        let story = model.currrentStory
        
        VStack {
            Image(story?.featuredImage ?? "effort")
                .resizable()
                .scaledToFit()
            Text(story?.title ?? "error")
            Text(story?.description ?? "error description")
            
        }
        
    }
}

我试过这段代码来显示“解释”,在我的例子中称为“文本”。

ForEach(0..<(story?.text.count ?? ""), id: \.self) { index in
                
                Text(story?.text[index] ?? "notext")
                    .padding(.bottom, 5)
            }

我在“ForEach”行中收到此错误:无法将类型 'String' 的值转换为预期的参数类型 'Int'

如果我强制解包而不是使用“??”,应用程序会崩溃。

您应该在 ForEach:

中遍历数组本身,而不是使用索引
ForEach(story?.text ?? []), id: \.self) { item in
  Text(item).padding(.bottom, 5)
}

请注意,如果数组元素不是真正唯一的,则在 ForEach id 上使用 .self 将失败或产生意外结果。考虑创建一个具有真正独特 Identifiable 元素的数据模型。