首页 > 解决方案 > 无法将 mutableList 映射到字符串数组 KMM -> Swift

问题描述

我是 swift 新手,我一直在尝试将这组员工映射到一组员工姓名(字符串)。我究竟做错了什么?

这是一个 KMM 项目,因此对象定义是用 Kotlin 编写的

data class Employee( //kotlin
    val id:String,
    val name:String,
    val isHere:Boolean
)

data class Work( //kotlin
    val id:String,
    val name: String,
    var employees: MutableList<Employee>,
    val todoToday: Boolean
)



struct SideworkCardView: View {
    var work : Work
    var body: some View {
        VStack(alignment: .leading) {
            Text(work.name.capitalized)
                .font(.system(size: 25, weight: .medium))
                .foregroundColor( .black )
            Text(
                work.employees.map( { (employee) -> String in
                    employee.name //ERROR HERE
                }).joined(separator: ", ")
            )
            .font(.system(size: 15, weight: .medium))
            .foregroundColor(.black)
        }        
    }
}

错误:“NSArray.Element”(又名“Any”)类型的值没有成员“名称”

标签: arraysswiftkotlin-multiplatform-mobile

解决方案


似乎由于某种原因 swift 没有适当地翻译 MutableList ,因此我得到了那个错误。作为修复,我将其更改为我的 Work 对象上的常规列表。当然,我必须更新一些依赖于该列表的代码是可变的,但没有什么是不能完成的。如果有人对为什么会发生这种情况有不同的修复或更多信息,请发布另一个答案。


推荐阅读