2017-03-08 58 views
-1
class ListVC: UIViewController { 
    @IBOutlet weak var listTable: UITableView! 
    var items: [String] = ["A", "B", "C"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.listTable.register(UITableViewCell.self, forCellReuseIdentifier: "cell") 
    } 

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell:UITableViewCell = self.listTable.dequeueReusableCell(withIdentifier: "cell")! as UITableViewCell 

     cell.textLabel?.text = self.items[indexPath.row] 

     return cell 
    } 
} 

以上是我在視圖控制器代碼,但我得到錯誤說:斯威夫特表視圖委託錯誤

***終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因是:「 - [ R_Test.ListVC的tableView:numberOfRowsInSection:]:無法識別的選擇發送到實例0x7ff8f9c22e40'

+0

從'return self.items.count;'中移除';'然後嘗試。的UITableViewDelegate和UITableViewDatasource –

+0

@agent_stack它,如果你把逗號也 –

+0

一套表委託和數據源 listTable.delegate =自 listTable.dataSource =自 另外補充協議沒關係你的'listTable'數據源集? –

回答

0

設置class ListVC: UIViewController,UITableViewDataSource, UITableViewDelegate

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.listTable.dataSource = self 
    self.listTable.delegate = self 
    self.listTable.register(UITableViewCell.self, forCellReuseIdentifier: "cell") 
} 
0

變化

class ListVC: UIViewController 

class ListVC: UIViewController, UITableViewDelegate, UITableViewDataSource 

VDL

listTable.delegate = self 
listTable.dataSource = self 
+0

這是說使用未聲明的類型UITableViewDatasource – Ren

+0

@Ren'UITableViewDatasource'到'UITableViewDataSource'我的意思是大寫'S'。 –

-1

您可以更改class ListVC: UIViewControllerclass ListVC: UIViewController, UITableViewDelegate,UITableViewDataSource,然後在你的didLoad()方法中添加以下代碼:

self.listTable.dataSource = self 
self.listTable.delegate = self