2017-05-18 5 views
1

クラスから単純なテーブルビューを生成しようとしています。私がセルを "A"にすると、すべてのセルにAの文字が表示されますが、この現在のコード出力では空白のテーブルが表示されます。私は間違って何をしていますか?申し訳ありませんが自己学習初心者ここに。テーブルビューセルにクラスのテキストが表示されない

import UIKit 

class LinesViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

@IBOutlet weak var linesTableView: UITableView! 
let cellID = "cell" 
let lines = ["brown","red","blue"] 

class Train { 
    var color: String = "" 
    var line: String = "" 

    init (color:String?, line:String?){ 
    } 
} 

let brownLine = Train(color: "brown", line: "Brown Line") 
let redLine = Train(color: "red", line: "Red Line") 
let blueLine = Train(color: "blue", line: "Blue Line") 
var trains: [Train] = [] 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
    linesTableView.delegate = self 
    linesTableView.dataSource = self 
    trains = [brownLine,redLine,blueLine] 
    //print (trains[1].line) 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

func numberOfSections(in tableView: UITableView) -> Int { 
    return 1 
} 

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

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

    let cell = linesTableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath) 

    let train = trains[indexPath.row] 
    cell.textLabel?.text = train.line 

    return cell 
} 
+0

'Train'イニシャライザで値を割り当てるのを忘れてしまったので、まだ空文字列です。 –

+0

最初のビジュアルをテストするために固定テキストを置いてみましたか?これを変更してください:cell.textLabel?.text = train.line for this:cell.textLabel?.text = "Hello"また、クラスを正しく初期化していません。 –

答えて

1

クラスデータメンバーに渡し値を割り当てていません。 なぜそれらはいつも空だった。

class Train { 
    var color: String = "" 
    var line: String = "" 

    init (color:String?, line:String?){ 
     self.color = color 
     self.line = line 
    } 
} 
+0

ああああ、ありがとう、ありがとう。コメントは正しいと思われましたが、syedの例は私のクラス値を適切に初期化する方法を正確に示しました – Lew

関連する問題