首页 > 解决方案 > 无法为图像阵列的表达式生成诊断

问题描述

我正在尝试将 SWiftUI 类中的 UIImage 数组用于 forEach 循环,但 Xcode 总是给我错误“无法为表达式生成诊断;”。我也尝试使用Data数组但同样的错误。下面是我的代码。如果有人能指出我做错了什么,那就太好了?

struct Sample: View {

    let imageArray: [UIImage]

    var body: some View {
        ForEach(imageArray) { image in
            Image(uiImage: image)
        }
    }
}

标签: iosswiftxcodeswiftui

解决方案


ForEach 运算符要求数组的元素符合可识别的。对于像 UIImage 这样的东西,你可以只传递 self.

var body: some View {
    ForEach(imageArray, id: \.self) { image in
        Image(uiImage: image)
    }
}

就个人而言,我也将它包装在一个堆栈中,只是为了明确

var body: some View {
    VStack {
        ForEach(imageArray, id: \.self) { image in
            Image(uiImage: image)
        }
    }
}

推荐阅读