現在、Firebase UI を使用して UITableView にカスタム セルを設定しようとしています。残念ながら難しいことが判明しており、以前に提案された修正は機能していません。
ドキュメント(https://github.com/firebase/FirebaseUI-iOS#using-storyboards-and-prototype-cells)はこれを示しています:
self.dataSource = FirebaseCollectionViewDataSource(ref: firebaseRef cellClass: YourCustomClass.self cellReuseIdentifier: @"<YOUR-REUSE-IDENTIFIER>" view: self.collectionView)
self.dataSource.populateCellWithBlock { (cell: YourCustomClass, obj: NSObject) -> Void in
// Populate cell as you see fit
cell.customView = customView;
}
self.collectionView.dataSource = self.dataSource;
これをコピーして独自の TableViewCellClass を挿入すると、次のエラーが発生します。
タイプ '(ManageTableViewCell, NSObject) -> Void' の値を予期される引数タイプ '(UITableViewCell, NSObject) -> Void' に変換できません
次に、この問題のスレッド ( https://github.com/firebase/FirebaseUI-iOS/issues/16 ) を見ました。ここで、Firebase チームの 1 人が、キャストを強制すると次のように機能すると述べました。
self.dataSource.populateCellWithBlock { (cell: UITableViewCell, obj: NSObject) -> Void in
// Populate cell as you see fit, like as below
var customCell = cell as! CustomTableViewCell;
let snapshot = obj as! FDataSnapshot; // danger this can be null on deletion!
}
ただし、これによりすぐにエラーが発生します。
「UITableViewCell」からよりオプションのタイプ「ManageTableViewCell!」にダウンキャストできません。
これを行う方法について何か提案はありますか。これは、実際の修正がない一般的な問題のようです。