如何在Swift 4中访问另一个结构内部的结构值?

时间:2018-09-10 13:39:19

标签: swift

我目前有

struct cellData {
    var opened = Bool()
    var title = String()
    var iconName = String()
    var sectionData = [Any]()
}

struct SectionData {
    var subTitle: String
    var iconName: String
}

然后在另一个函数中调用:

let test = tableViewData[indexPath.section].sectionData[dataIndex]

print(test)

哪个输出:

SectionData(subTitle: "Terms", iconName: "")

由于执行test.subTitle会引发以下错误,因此我如何访问subTitle值:

类型“任何”的值没有成员“子标题”

2 个答案:

答案 0 :(得分:6)

这是因为在行var sectionData = [Any]()中将类型定义为Any。因此,当您通过tableViewData[indexPath.section]访问它时,您会获得一个Any的值。

您应将var sectionData = [Any]()更改为var sectionData = [SectionData]()

否则,一旦从tableViewData[indexPath.section]获取了值,就可以转换为SectionData,然后访问该值。

答案 1 :(得分:0)

sectionData数组更改为SectionData数组,如下所示:var sectionData = [SectionData]()。完成此操作后,您可以通过以下方式进行访问:tableViewData[indexPath.section].sectionData[dataIndex].subTitle