tableviewcell
Firebase UI を使用するためのカスタム xib とクラスの両方を実行する方法を理解しようとしています。
XCodeでセットアップしたもの:カスタムxibファイルが呼び出されEventCellView.xib
、xib内のカスタムtableviewcellには再利用IDがeventCell
あり、クラスでもありますEventTableViewCell
EventTableViewCell
カスタムクラスの私のコードは
class EventTableViewCell: UITableViewCell {
@IBOutlet weak var eventTitle: UILabel!
@IBOutlet weak var eventDate: UILabel!
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func awakeFromNib() { super.awakeFromNib() }
}
現在、github から Firebase UI ドキュメントを読んで、データソースをセットアップするために複数の異なる方法を試しました。これは最新のものです。
self.dataSource = FirebaseTableViewDataSource(ref:fbRef,
nibNamed: "EventCellView",
cellReuseIdentifier: "eventCell",
view: self.eventTable)
self.dataSource!.populateCellWithBlock { (cell: UITableViewCell, obj: NSObject) -> Void in
let snap = obj as! FDataSnapshot
var customCell = cell as! EventTableViewCell
customCell.eventTitle.text = snap.key
}
基本的に、Github の指示に従って、サブクラスUITableViewCell
化して init (style, resuseId) メソッドを実装するように指示されているためcellResuseIdentifier
、データソース内で と nib を指定すると、次のエラーが発生します。
Terminating app due to uncaught exception `NSInternalInconsistencyException`, reason:
無効な nib が識別子 (eventCell) に登録されました - nib には、UITableViewCell インスタンスでなければならない最上位オブジェクトが 1 つだけ含まれている必要があります
どんな助けでも素晴らしいでしょう、ありがとう。