FirebaseUi-Swift-将UITableViewCell的值强制转换为自定义类



在使用带有Firebase UI的UITableViewCell的自定义类时遇到问题。这是我的代码:

在我的TableViewController:中

self.dataSource = FirebaseTableViewDataSource(ref: firebaseRef, cellClass: MyEventTableViewCell.self, cellReuseIdentifier: "MyEventTableViewCell", view: self.tableView)
self.dataSource.populateCellWithBlock { (cell, obj) -> Void in
    let snap = obj as! FDataSnapshot
    print(cell)
    let myEventCell = cell as! MyEventTableViewCell
    myEventCell.eventNameLabel.text = "hello" 
}

在我的MyEventTableViewCell:中

class MyEventTableViewCell: UITableViewCell {
    @IBOutlet weak var eventImageView: UIImageView!
    @IBOutlet weak var eventNameLabel: UILabel!
    var error:String?
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        // Configure the view for the selected state
     }
}

我得到了:

'致命错误:在展开可选时意外发现nilvalue"

在这条线上:

myEventcell.eventNameLabel.text = "hello"

奇怪的是,"print"给出了以下输出:

<test.MyEventTableViewCell: 0x7dab0400; baseClass = UITableViewCell; frame = (0 0; 320 44); autoresize = W; layer = <CALayer: 0x7be738c0">>

我们需要做些什么来管理UITableViewCell的子类?

附言:我正在使用故事板来定义我的自定义单元格,我正在使用Xcode 7。

FirebaseUI开发者在这里:

如果您使用的是情节串连板/原型单元,请使用具有prototypeReuseIdentifiercellReuseIdentifier的构造函数(请参阅此处)。这是一个不幸的缺陷,原因是iOS开始执行UICollectionView,但故事板的UITableView实现有所不同。TL;DR:情节提要会自动为您注册单元重用标识符,如果您再次尝试注册,它会覆盖它并认为它不同,这意味着您看不到任何内容。有关更多信息,请参阅使用情节提要和原型单元格上的FirebaseUI文档(尽管看起来我需要添加原型部分,所以很抱歉造成混淆)。

您似乎忘记在自定义单元格中实现init

对于FirebaseUI ios github

创建UITableViewCell或UICollectionViewCell的自定义子类,包含或不包含XIB文件。请确保实例化-initWithStyle:reuseIdentifier:以实例化UITableViewCell或-initWithFrame:以实例化UICollectionViewCell。然后,您可以将自定义类挂接到FirebaseTableViewDataSource的实现。

相关内容

  • 没有找到相关文章

最新更新