2016-07-07 2 views
1

私は別のスウィフトファイルの関数を別の関数で呼び出そうとしています。私は関数の前にクラスを追加することでそうする。しかし、関数funcをクラスfuncに変更すると、前にエラーがなかったtableView.reloadData()でエラーが発生します。エラーは、 '曖昧なtableView(_:numberOfRowsInSection)への参照です。私は、別の迅速なファイルでも呼び出す関数をしたいので、私はtableViewのエラーを削除したいと思います。これは私がしようとしているコードです:別のスウィフトファイルで関数を使用するために、関数をクラスfuncに変更すると、メンバーtableView.reloadData()への曖昧な参照

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をリロード可能性がどのように。

+1

クラス機能であってはなりません。あなたのクラスはテーブルビューを持たず、あなたのクラスのインスタンスはありません。 – dan

答えて

1

おそらく、これをクラス関数ではなくデリゲートメソッドにしたいと思うでしょう。

プロトコルとデリゲートを定義します。

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

を次にプロパティを作成し、それを呼び出す必要がある、あなたの迅速なファイルに:

var delegate: HospitalSearchDelegate? 

プロパティを割り当て、次にとしてそれを呼び出す:

delegate?.filteredContentForSearchText("Search", scope: "All") 
関連する問題