为什么不调用我的UITableViewDataSource函数?

时间:2016-08-03 15:08:28

标签: ios swift xcode

当我运行代码时,我在渲染此关联的UIView时成功将JSON数据提供给我的应用程序。我有一个tableView充分链接到这个文件,当我运行应用程序时,我看到tableview本身。但是,3个数据源函数中没有一个被自动调用 - 'wtf'打印语句,在播放2小时之后,将会是.not.print。

我错过了什么吗?这段代码与我编写的所有其他tableviewdatasource代码相同,这根本不起作用或呈现我提供的JSON数据

有没有人有想法或建议?谢谢!

import UIKit

class ChooseUserViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {


@IBOutlet weak var tableView: UITableView!


var users: [BackendlessUser] = []

override func viewDidLoad() {
    super.viewDidLoad()

    loadUsers()
}

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

//MARK: UITableViewDataSource

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

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    print("wtf")
    return users.count

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("chooseCell", forIndexPath: indexPath)

    let user = users[indexPath.row]
    print("wtf!")

    cell.textLabel?.text = user.email

    return cell


}
}

3 个答案:

答案 0 :(得分:0)

您可以在storyboard(Interface Builder)中使用数据源和委托与视图控制器连接的tableview。

答案 1 :(得分:-1)

如果您忘记使用dataSource在故事板中设置delegateCtrl+Drag,则需要在viewDidLoad中指定您“{1}}。以下列方式重新dataSourcedelegate

override func viewDidLoad() {
  super.viewDidLoad()

  tableView.delegate = self
  tableView.dataSource = self

  loadUsers()
}

我希望这对你有所帮助。

答案 2 :(得分:-1)

答案:我没有将我的表对象的委托和数据源连接到视图控制器 - OOPS!我觉得很傻,但这显然是我的问题