我收到以下错误:
1)类型' UITableViewCell'的非可选表达式用于检查选项
2)类型' UITableViewCell的价值'没有会员' congigureCell' 请
static final EnumMap<EnumType , Boolean> visibilityMap
答案 0 :(得分:2)
1)!
结尾处的标记countryList.dequeueReusableCell(withIdentifier: "cell")!
使用强制展开使其不可选,所以你不应该在中检查它,如果让,或者更好的方法就是删除!标记
2) congigureCell 可能是不同类的方法,而不是 UITableViewCell 。您应该通过此类替换 UITableViewCell 来投射它
答案 1 :(得分:1)
只需使用
if let cell:UITableViewCell = countryList.dequeueReusableCell(withIdentifier: "cell") as UITableViewCell
let myCell = cell as! MyCell
答案 2 :(得分:1)
确保您已完成以下步骤。
YourTableview
的委托和数据源分配给YOURViewController.swift
。 YOURViewController.swift
访问单元格中
视为。添加自定义类的子类UITableViewCell并将其分配给 故事板中的旅游单元。
func tableView(_ tableView: UITableView, cellForRowAt indexPath:
IndexPath) -> UITableViewCell {
if let cell = countryList.dequeueReusableCell(withIdentifier: "cell") as! YOURTableViewCellClass {
let text: String!
if inSearchMode {
text = filteredCountriesList[indexPath.row]
} else {
text = countriesList[indexPath.row]
}
cell.congigureCell(text: text) // Error 2 happens here
return cell }
答案 3 :(得分:1)
1.取消dequeueReusableCellWithIdentifier:使用dequeueReusableCellWithIdentifier:forIndexPath:后者永远不会提供nil值,因此您不必担心错误&#39;。
2.UItableViewCell没有像你的情况那样配置cell或congigureCell而是你必须创建一个自定义tableViewCell并添加函数作为configureCell()然后在这行
如果让cell:UITableViewCell = countryList.dequeueReusableCell(withIdentifier:&#34; cell&#34;)!作为UITableViewCell
将替换为UITableViewCell ,将替换为yourCustomTableViewCellClass