2

UITableViewCellFirebase-UIのカスタム クラスを操作するときに問題が発生します。これが私のコードです:

私の中で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
     }
}

私が得た:

「致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました」

この行で:

myEventcell.eventNameLabel.text = "hello"

奇妙なのは、" print" が次の出力を与えることです:

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

のサブクラスを管理するにはどうすればよいUITableViewCellでしょうか?

PS: カスタム セルを定義するためにストーリーボードを使用しており、Xcode 7 を使用しています。

4

2 に答える 2

0

カスタムセルに init を実装するのを忘れたようです

FirebaseUI-ios github の場合

XIB ファイルの有無にかかわらず、UITableViewCell または UICollectionViewCell のカスタム サブクラスを作成します。-initWithStyle: reuseIdentifier: をインスタンス化して UITableViewCell をインスタンス化するか、-initWithFrame: をインスタンス化して UICollectionViewCell をインスタンス化してください。その後、カスタム クラスを FirebaseTableViewDataSource の実装にフックできます。

于 2015-11-16T10:41:57.673 に答える