Swift NSTableView未在块内重新加载

Swift NSTableView未在块内重新加载,swift,macos,nstableview,backendless,Swift,Macos,Nstableview,Backendless,我有一个非常简单的Swift项目,在我的故事板中连接了一个NSTableView。数据源、代理和IBOutlet都已连接 该表在加载时按预期运行委托方法。我可以从func运行tableView.reloadData(),并成功地再次运行这些方法 但是,我有一个方法可以获取数据并提供一个完成块。我在这里调用self.tableView.reloadData(),但我的tableView没有重新加载 更值得注意的是,该应用程序崩溃,我在控制台中看到此错误:致命错误:在展开可选值时意外发现nil 如何

我有一个非常简单的Swift项目,在我的故事板中连接了一个NSTableView。数据源、代理和IBOutlet都已连接

该表在加载时按预期运行委托方法。我可以从
func
运行
tableView.reloadData()
,并成功地再次运行这些方法

但是,我有一个方法可以获取数据并提供一个完成块。我在这里调用self.tableView.reloadData(),但我的tableView没有重新加载

更值得注意的是,该应用程序崩溃,我在控制台中看到此错误:
致命错误:在展开可选值时意外发现nil

如何从块中重新加载tableview

此外,以下是该函数:

func fetchData()
    {
        beHelper.backendless.data.of(Assembly.ofClass()).find(
            { (collection : BackendlessCollection!) -> Void in

                let assemblies = collection.getCurrentPage()
                self.data.removeAll()
                for obj in assemblies { self.data.append(obj as! Assembly) }
                self.tableView.reloadData()

            },
            error: { (fault : Fault!) -> Void in

        })
    }

您在哪一行看到“意外发现零”错误?另外,确保从主线程调用了
reloadData()
。您可以通过添加以下行来检查它是否在主线程上运行
print(“is main thread:\”(“NSThread.isMainThread())
崩溃和错误会在
重新加载数据
行上抛出。我尝试在
dispatch\u async
中运行它,但得到了相同的结果。您可以检查
self.tableView
的值吗?我的猜测是,当您将其声明为
var tableView:UITableView时,在执行点它是nil
哪个崩溃是因为它应该有一个值?此时tableview为
nil
。问题是,我怎样才能避开这个问题?表在这个时间点上确实存在,但我无法从块内访问它?真正的问题是,如果表视图显然为零,您如何确保它存在?您在哪里调用
fetchData()
?您应该尝试在
viewDidLoad()
中/之后调用它,以确保
tableView
在该点实际就位。