Swift 如何在两个相等的变量上筛选UITableViewCell

Swift 如何在两个相等的变量上筛选UITableViewCell,swift,uitableview,Swift,Uitableview,我想在Swift 4中填充UITableView,只想显示属于登录用户的记录。显然,我需要一个IF语句来查看两个值是否相等。如何返回null,即不向表中添加单元格。请参阅下面的代码 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let cell = tableView.dequeueReusableCell(wi

我想在Swift 4中填充UITableView,只想显示属于登录用户的记录。显然,我需要一个
IF
语句来查看两个值是否相等。如何返回
null
,即不向表中添加单元格。请参阅下面的代码

func tableView(_ tableView: UITableView, 
    cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    guard let cell = tableView.dequeueReusableCell(withIdentifier: 
    "RunCell") as? RunCell else { return UITableViewCell() }

    let user_id_main = String(MainMenuViewController.myVariables.user_id.prefix(2))

    if (user_id_main==runs[indexPath.row].user_id)
    {
        cell.idLbl.text = "ID: " + runs[indexPath.row].run_id
        cell.dateLbl.text = "Date: " + runs[indexPath.row].date_of_run

        return cell
    }
    return cell
}

我知道
返回单元格
之外,如果
仍然会返回单元格,这是直到我找到答案为止。

这不是uitableview的工作方式。您无法即时决定是否显示单元格。您需要在加载或重新加载表之前执行此操作

在加载或重新加载tableView之前,请将数组筛选到一个新数组中,该数组只包含具有匹配
用户id的记录。然后使用这个新数组作为表的模型。新数组的大小将决定表中的行数,每行对应于新数组的一项


每次
user\u id\u main
更改时,重新筛选
运行的
数组并重新加载表。

您不能返回空值单元格


要实现所需的功能,请首先筛选
运行
数组中所需的值,并将其存储在其他数组中,例如
mainUserRuns
,然后使用此新数组为tableview提供数据。
self.runsFilter.append(self.runs)
我试图添加到
runsFilter
中,但它说
无法将“[Run]”类型的值转换为预期的参数类型“Run”
,我在这里做错了什么?请尝试
self.runsFilter=self.runs.filter{$0.Run\u id==user\u id\u main}