2016-04-09 8 views
2

テーブルビューのIBoutletによって、「格納されたプロパティ "tableView"でオーバーライドできません」というエラーが表示されます。私はこれがどういう意味なのかよく分かりませんが、どんなタイプの助けにも感謝します。あなたはそれがdelegatedataSourceだとして テーブルビューが機能しない

このような
override func viewDidLoad() { 
    super.viewDidLoad() 

    self.tableView.delegate = self 
    self.tableView.dataSource = self 
} 

答えて

1

viewDidLoad()UITableViewControllerを設定する必要があり 輸入のUIKit

class UsersViewController: UITableViewController { 

    @IBOutlet var tableView: UITableView! 

    var users = ["Marc", "Mark" , "Louise", "Ahinga", "Amossi", "Kalenga"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     // #warning Incomplete implementation, return the number of sections 
     return 1 
    } 

    override func tableView(tableView:UITableView, numberOfRowsInSection section:Int) -> Int { 
     return 3 
    } 

    override func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCell { 
     let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! userCell 
    } 

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    } 
} 
1

は適切tableViewという名前に建てUITableView、付属しています。ペーストしたコードでは、UITableViewを追加して同じ名前を付けています。これは、コンパイラが不平を言っていることです。

理論上、ストーリーボードのプレーンバニラUITableViewControllerを使用している場合は、テーブルをIBOutletにリンクしないでください。それは世話をしている。

クラスがストーリーボードで提供するものの上に特別なUITableViewControllerが必要な、より洗練されたものを構築する場合は、別の名前を付ける必要があります。

+0

そうではありません。 'UITableViewController'はデフォルトで' UITableViewDelegate'と 'UITableViewDataSource'プロトコルに準拠し、' tableView'がそれに設定されています。 – catalandres

関連する問題