当我将函数更改为类func时,对成员tableView.reloadData()进行Ambigious引用,以便在另一个swift文件中使用该函数

时间:2016-07-07 15:56:51

标签: ios swift uitableview

我试图在另一个中调用一个swift文件的功能。我是通过在函数前添加类来实现的。但是当我将func更改为类func时,我在tableView.reloadData()上收到错误,之前没有错误。错误是对tableView(_:numberOfRowsInSection)的暧昧参考。我想删除tableView错误,因为我希望在另一个swift文件中调用该函数。这是我一直在尝试的代码:

class func filteredContentForSearchText(searchText:String, scope: String = "All"){
    var filtered: [String] = []

    let UniName: [String] = ["ATLANTA MEMORIAL HOSPITAL", "AUSTIN SURGICAL HOSPITAL", "BAPTIST MEDICAL CENTER", "BOWIE MEMORIAL HOSPITAL",
                             "COLLEGE STATION MEDICAL CENTER", "COVENANT MEDICAL CENTER","HUNT REGIONAL COMMUNITY HOSPITAL","METHODIST HOSPITAL","PARKVIEW HOSPITAL"]


filtered = UniName.filter{car in
    print(filtered)
return car.lowercaseString.containsString(searchText.lowercaseString)
}
tableView.reloadData() }

我怎样才能重新加载tableView,以便在需要在另一个swift文件中使用此函数的同时获取地图工具包的新搜索结果。

1 个答案:

答案 0 :(得分:1)

你可能想让它成为委托方法,而不是类函数。

使用协议定义委托:

protocol HospitalSearchDelegate {
    func filteredContentForSearchText(searchText: String, scope: String)
}

然后在需要调用它的swift文件中创建一个属性:

var delegate: HospitalSearchDelegate?

分配属性,然后将其命名为:

delegate?.filteredContentForSearchText("Search", scope: "All")