我有一个字符串-";productRaw";我将其分解以在单独的sectionData
细胞中显示;项目1";cellData
表视图。这是我用来拆分String并将每个单独的部分添加到一个单独的sectionData
单元的代码。
let group_array = document["product"] as? [String] ?? [""]
let productName1 = group_array.first ?? "No data to display :("
let productRaw = "(productName1)"
let componentsRaw = productRaw.components(separatedBy: ", ")
var product = [String: String]()
for component in componentsRaw {
let keyVal = component.components(separatedBy: ": ")
product[keyVal[0]] = keyVal[1]
}
if let productName = product["Product Name"], let listingPrice = product["Listing Price"], let briefDescription = product["A brief description"], let productURL = product["Product URL"], let activeUntil = product["Listing active until"] {
self.tableViewData = [cellData(opened: false, title: "Item 1", sectionData: [productName], [listingPrice], [briefDescription], [productURL], [activeUntil])]
}
在我声明我想要显示的第一部分的各个单元格的情况下——";项目1";,当我在sectionData
中只使用[productName]
时,它编译起来没有任何问题。然而,当我也将, [listingPrice], [briefDescription], [productURL], [activeUntil]
添加到我的sectionData
时,我收到以下[cellData(opened:
语法错误。
调用中位置#4、#5、#6、#7处的额外参数
所以我的问题是,为什么我会收到上述错误,我该怎么办才能解决它?
当我只在我的sectionData中使用[productName]时,这会编译
[productName]
是一个包含一个项的数组。
我还将[listingPrice]、[briefDescription]、[productURL]、[activeUntil]添加到我的部分数据
您添加了用逗号分隔的额外数组,编译器将其解释为额外的函数参数。
self.tableViewData = [cellData(opened: false, title: "Item 1", sectionData: [productName, listingPrice, briefDescription, productURL, activeUntil])]
将所有项目放在一组方括号内。这就是如何声明具有多个项的数组。
如果没有看到cellData
的声明,很难知道出了什么问题,但据我所知,最明显的原因是cellData
的构造函数只接受3个参数,而不是7个参数。
在这个答案中,他们还提到,如果你不为每个参数传递正确的类型,可能会引发这个错误。
如果给出cellData
的定义,我们可以提供更多帮助