2017-03-28 5 views
4

私はViewControllerを持っており、その中に私はTableViewを持っています。 Alamofireリクエストでデータを取得した後、TableViewのデータをリロードし、tableViewがnilであるためクラッシュする箇所があります。なぜtableviewはnilですか?

class TeamsVC: UIViewController, UITableViewDelegate, UITableViewDataSource{ 

@IBOutlet var tableView: UITableView! 

var terminArr = [Termin]() 
override func viewDidLoad() {   
    TerminResource.getTerminsByUsername(username: "SonnyBlackzz"){ 
     response in 

     self.terminArr = response 
     self.tableView.reloadData() 
    } 
} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return self.terminArr.count; 
} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 

    print(self.terminArr[indexPath.row].name) 

    cell.textLabel?.text = self.terminArr[indexPath.row].name 

    return cell 
} 
+6

テーブルビューをストーリーボードのコンセントに接続しましたか?ストーリーボードを使用している場合、それはありますか? – Fahim

+1

IBOutletをtableViewに接続しましたか? – Magnas

+1

あなたはストーリーボードでtableviewセル識別子を設定しましたか? –

答えて

3

3つのオプションがあります。

1 - コンセントをテーブルビューに接続していることを確認してください。

2 - あなたが持っているだろう簡単に

self.tableView.reloadData() 

3 - あなたは

最初

プログラム的にそれを初期化する必要がありアクセスなど

class TeamsVC: UITableViewController, UITableViewDelegate, UITableViewDataSource{ 
. 
. 
. 
} 

未満であることが、あなたの継承を変更することができます

var tableView: UITableView = UITableView() 

をviewdidloadに入れます

関連する問題