Динамический источник данных / делегаты для UITableView в Swift

Мне нужно настроить различные объекты на основе определенных условий в качестве источника данных и делегата для табличного представления.

Но я не могу назначить источник данных / делегат tableview, так как он вызывает некоторые ошибки.

Не можете присвоить значение типа NSObject? к значению типа UITableViewDelegate?

Я проверилэтот Q & A, но это не сработало.

var dataSourceDelegate:NSObject?
class RootViewController: UIViewController {
...
override func viewDidLoad() {
        dataSourceDelegate = TableDataSourceDelegate()
        // Table View
        tableView = UITableView()
        tableView!.setTranslatesAutoresizingMaskIntoConstraints(false)
        tableView!.dataSource = dataSourceDelegate 
        // Cannot assign a value of type NSObject? to a value of type UITableViewDataSource?
        tableView!.delegate = dataSourceDelegate
        // Cannot assign a value of type NSObject? to a value of type UITableViewDelegate?
        view.addSubview(tableView!)

        // Constraints
        var views:[String:UIView] = ["table":tableView!]
        var hTableConstraint = "H:|[table]|"
        var vConstraint = "V:|[table]|"
        view.addConstraintsToView([hTableConstraint, vConstraint], view: view, viewVariables: views)
    }
...
}

Это источник данных / класс делегата

class TableDataSourceDelegate:NSObject, UITableViewDataSource, UITableViewDelegate {
    // MARK: Datasource

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return UITableViewCell()
    }

    // MARK: Delegates
}

Ответы на вопрос(2)

Ваш ответ на вопрос