swift UITableViewDataSource xcode 6.1
swift UITableViewDataSource xcode 6.1
当我将 UITableViewDataSource 添加到 viewControllerClass
时,我正在尝试在 application.But 中使用 UITableViewDataSource
这是我的代码
class SecondViewController: UIViewController,UITableViewDataSource{
我得到的东西有误
'SecondViewController' 不符合协议 'UITableViewDataSource'
self.messageTableView!.registerNib(UINib(nibName: "MessageCell", bundle: nil), forCellReuseIdentifier: "MessageCell")
self.messageTableView!.rowHeight = UITableViewAutomaticDimension;
self.messageTableView!.estimatedRowHeight = 44.0;
self.messageTableView!.keyboardDismissMode = .Interactive
self.view.addSubview(self.messageTableView!)
您必须实现协议的非可选功能,它们是:
tableView:numberOfRowsInSection
tableView:cellForRowAtIndexPath
除了自定义消息单元格之外,我重构了您的代码并进行了编译。我注意到使用不当!在 UITableView 的两个必需函数中将给出该消息。如果您单击错误消息(标记为红色),它将在导致问题的行中显示其他错误消息。首先删除 !有时编译会提供更正我还在另一个堆栈溢出上看到 6 和 6.1 之间有变化。我正在使用 6.1。 ([iOS : 'MyViewController' does not conform to protocol 'UITableViewDataSource')
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var messages = ["A", "B", "C"]
@IBOutlet var tableView: UITableView?
override func viewDidLoad() {
super.viewDidLoad()
tableView!.dataSource = self
tableView!.delegate = self
self.tableView!.registerNib(UINib(nibName: "MessageCell", bundle: nil), forCellReuseIdentifier: "MessageCell")
self.tableView!.rowHeight = UITableViewAutomaticDimension;
self.tableView!.estimatedRowHeight = 44.0;
self.tableView!.keyboardDismissMode = .Interactive
self.view.addSubview(self.tableView!)
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return messages.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
var cell:UITableViewCell=tableView.dequeueReusableCellWithIdentifier("MessageCell") as UITableViewCell
var msg=self.messages[indexPath.row]
//cell.configureWithMessage(msg)
return cell
}
}
当我将 UITableViewDataSource 添加到 viewControllerClass
时,我正在尝试在 application.But 中使用 UITableViewDataSource这是我的代码
class SecondViewController: UIViewController,UITableViewDataSource{
我得到的东西有误 'SecondViewController' 不符合协议 'UITableViewDataSource'
self.messageTableView!.registerNib(UINib(nibName: "MessageCell", bundle: nil), forCellReuseIdentifier: "MessageCell")
self.messageTableView!.rowHeight = UITableViewAutomaticDimension;
self.messageTableView!.estimatedRowHeight = 44.0;
self.messageTableView!.keyboardDismissMode = .Interactive
self.view.addSubview(self.messageTableView!)
您必须实现协议的非可选功能,它们是:
tableView:numberOfRowsInSection
tableView:cellForRowAtIndexPath
除了自定义消息单元格之外,我重构了您的代码并进行了编译。我注意到使用不当!在 UITableView 的两个必需函数中将给出该消息。如果您单击错误消息(标记为红色),它将在导致问题的行中显示其他错误消息。首先删除 !有时编译会提供更正我还在另一个堆栈溢出上看到 6 和 6.1 之间有变化。我正在使用 6.1。 ([iOS : 'MyViewController' does not conform to protocol 'UITableViewDataSource')
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var messages = ["A", "B", "C"]
@IBOutlet var tableView: UITableView?
override func viewDidLoad() {
super.viewDidLoad()
tableView!.dataSource = self
tableView!.delegate = self
self.tableView!.registerNib(UINib(nibName: "MessageCell", bundle: nil), forCellReuseIdentifier: "MessageCell")
self.tableView!.rowHeight = UITableViewAutomaticDimension;
self.tableView!.estimatedRowHeight = 44.0;
self.tableView!.keyboardDismissMode = .Interactive
self.view.addSubview(self.tableView!)
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return messages.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
var cell:UITableViewCell=tableView.dequeueReusableCellWithIdentifier("MessageCell") as UITableViewCell
var msg=self.messages[indexPath.row]
//cell.configureWithMessage(msg)
return cell
}
}