Ios 领域结果<;T>;计数返回零

Ios 领域结果<;T>;计数返回零,ios,swift,count,realm,Ios,Swift,Count,Realm,我正在用领域“Patient”对象填充我的表视图。要获取tableview应有多少行/节,请运行: class PatientsTableViewController: RealmSearchViewController { var dataSource : Results<Patient>! var currentPatient : Patient! ... override func numberOfSectionsInTableView(tableView: UITable

我正在用领域“Patient”对象填充我的表视图。要获取tableview应有多少行/节,请运行:

class PatientsTableViewController: RealmSearchViewController {

var dataSource : Results<Patient>!
var currentPatient : Patient!
...

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {

        return dataSource.count
}
我在另一个函数中使用
currentPatient
。但是,当我运行应用程序时,它崩溃并给我一个错误

致命错误:在展开可选值时意外发现nil

并指向

返回dataSource.count


我尝试用
returndatasource!替换它!。count
,或者在
viewdiload
中创建一个对象(只是为了测试,我不想创建任何对象),但错误仍然存在,我还尝试在模拟器中重置内容和设置,但效果不佳。我该怎么做?

我通过在我的初始视图控制器中定义并初始化一个
mainDataSource
,并通过
prepareForSegue
函数将其传递到下一个视图控制器的
数据源
中,应用程序在那里崩溃。

文件范围中的
数据源
设置在哪里,我将编辑未定义的问题集。你给它分配了什么?@luk2302对不起,我不知道为什么我忘了提到它。根据您的问题的答案编辑的问题在哪里调用了方法
reloadTable
?可能tableView会在视图显示过程开始时重新查询其数据-在某个点,您的
reloadTable
尚未调用,因此
dataSource
仍然为零。
func reloadTable()
{
    do
    {
        let realm = try Realm()
        dataSource = realm.objects(Patient)
        tableView?.reloadData()
    }
    catch
    {

    }
}