繁体   English   中英

Swift 表视图委托错误

[英]Swift Table View Delegate Error

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”

设置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")
}

改变

class ListVC: UIViewController

class ListVC: UIViewController, UITableViewDelegate, UITableViewDataSource

VDL

listTable.delegate = self
listTable.dataSource = self

您可以将class ListVC: UIViewController class ListVC: UIViewController, UITableViewDelegate,UITableViewDataSource更改为class ListVC: UIViewController, UITableViewDelegate,UITableViewDataSource ,然后在didLoad()方法中添加以下代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM