这是我的代码
class TableViewOne: UITableViewDataSource, UITableViewDelegate {
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("firstCell") as! firstCell
let index = indexPath.row
cell.labelMy.text = ViewController.firstData![index]
return cell
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if let s = ViewController.firstData {
return s.count
}
return 0
}
}
我不知道为什么这次我收到此错误但是当我使用UITableViewController
的子类时,这些就足够了,听起来UITableViewControlelr
已经为其他所需功能实现了,但我无法将自己认识到自己。
答案 0 :(得分:2)
UITableViewDataSource
要求您遵守NSObject
协议TableViewOne
,纯粹的快速类,NSObject
。将您的声明更改为继承class TableViewOne: NSObject, UITableViewDataSource, UITableViewDelegate
,如下所示:
override
其次,您不需要TableViewOne
关键字,因为UITableViewController
不是另一个对象的子类。 UITableViewController
有一个返回1的默认实现,但因为你不是子类override func numberOfSectionsInTableView(tableView: UITableView) -> Int
,所以没有方法可以覆盖。
func numberOfSectionsInTableView(tableView: UITableView) -> Int
VS。
com.fasterxml.jackson.databind.util.JSONPObject
答案 1 :(得分:0)
确保您从datasource
或delegate
向您的班级提出storyboard
和xib
。同样如下:
Datasource
会使您的课程符合:cellForRowAtIndexPath
,numberOfSection
,numberRowInSection
。
答案 2 :(得分:0)
您似乎已经在故事板中使用了UIViewController&添加了一个UITableView,如果是这样的话,那么子类UIViewController&像这样改变你的班级
class TableViewOne: UIViewController,UITableViewDataSource, UITableViewDelegate {
如果你已经在故事板中使用了TableViewController,那么你只需要子类化UITableViewController
class TableViewOne: UITableViewController{
&安培;您只需要添加以下函数来确认到tableview数据源
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 0
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}