我有两个原型单元BasicCell
和BasicCell2
。两者都有一个标签titlet
。我无法检查nil cel
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if(indexPath.row == 0 && flagcheck == 0 ) {
let cell2 = tableView.dequeueReusableCellWithIdentifier("BasicCell2") as BasicCell2
if cell2 == nil {
cell2 = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell2")
}
cell2.titlet.text = question+"\n"+"\n"
cell2.backgroundColor = hexStringToUIColor("b2cecf")
cell2.userInteractionEnabled = false
return cell2
}
else if (indexPath.row == 0){
let cell = tableView.dequeueReusableCellWithIdentifier("BasicCell") as BasicCell
if cell == nil {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell")
}
cell.titlet.text = question+"\n"+"\n"
return cell
}
else {
let cell = tableView.dequeueReusableCellWithIdentifier("BasicCell") as BasicCell
if cell === nil {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell")
}
cell.titlet.text = self.data1[indexPath.row-1]
return cell
}
}
这是我得到的错误
Cannot invoke '==' with an argument list of type '(BasicCell, NilLiteralConvertible)'
这是我的BasicCell.swift
import UIKit
class BasicCell: UITableViewCell {
@IBOutlet weak var titlet: UILabel!
}
答案 0 :(得分:0)
在执行比较操作之前,您可能必须打开单元格。
let cell2 = tableView.dequeueReusableCellWithIdentifier("BasicCell2") as BasicCell2!
if cell2 == nil {
cell2 = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell2")
}
检查BasicCell! ("!"字符是展开字符)。
如果有效,请告诉我。