A function that registers UITableViewCells that conform to both ReusableView and NibLoadableView.
extension UITableView {
func register<T:UITableViewCell where T: ReusableView, T: NibLoadableView>(_: T.Type) {
let nib = UINub(nibName: T.nibName, bundle: nil)
registerNib(nib, forCellReuseIdentifier: T.reuseIdentifier)
}
}
// Usage
tableView.register(CustomCell.self)