【发布时间】:2020-01-30 07:16:12
【问题描述】:
我在这里只找到了一个答案。我的问题是我没有使用Characters,除非String 是一个字符集合。我试着把它变成String 即;
let name = String(array[indexPath.section][indexPath.row])
但我得到同样的错误无法将类型“字符”的值分配给类型“字符串?”。
这是我的手机:
struct SectionStrings {
let sections = ["Stuff", "More Stuff", "Best Stuff"]
}
struct ArrayStrings {
let array = ["Little Stuff", "Bigger Stuff", "Biggest Stuff"]
}
struct DetailArrayStrings {
let detailArray = ["Teeny Stuff", "Teentsie Weentsie Stuff", "Invisible Stuff"]
}
这是我的控制器:
let sections = SectionStrings().sections
var array = ArrayStrings().array
let detailArray = DetailArrayStrings().detailArray
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifier, for: indexPath) as! SettingsCell
let name = array[indexPath.section][indexPath.row] // errors here
cell.textLabel?.text = name
cell.textLabel?.font = UIFont.boldSystemFont(ofSize: 17)
cell.textLabel?.textColor = .white
let detailName = detailArray[indexPath.section][indexPath.row] // and here
cell.detailTextLabel?.text = detailName
cell.detailTextLabel?.font = UIFont.systemFont(ofSize: 15)
cell.detailTextLabel?.textColor = .white
cell.detailTextLabel?.numberOfLines = 0
cell.selectionStyle = .none
cell.backgroundColor = .black
return cell
}
【问题讨论】:
-
array是[String]所以array[indexPath.section]是String。添加[indexPath.row]部分就像尝试做"hello"[5]。这就是你的错误的原因。您试图将array视为二维数组,但它只是一维的。 -
那么我应该如何计算它们,数组中的字符串数量?
-
@rmaddy 我尝试了一个范围
[..<index],但我得到一个额外的错误二元运算符'.. - 这是有道理的,因为 indexPath 不是 Int 或 String。
标签: swift uitableview character subscript custom-sections