iOS:'MyViewController'不符合协议'UITableViewDataSource'

编程入门 行业动态 更新时间:2024-10-14 14:19:21
本文介绍了iOS:'MyViewController'不符合协议'UITableViewDataSource'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述
  • 我是新来的 IOS swift 开发。我曾经使用以前的 Xcode 6 beta 。

  • I am new to IOS swift development. I used to work with previous Xcode 6 beta.

我已经下载了 Xcode 6.0.1 我无法使用它 Xcode版本:6.0.1

I have downloaded the Xcode 6.0.1 and I can not get this to work Xcode Version: 6.0.1

我仍在' MyViewController '未确认协议' UITableViewDataSource '当我尝试运行这个例子时。

I am still getting "'MyViewController' does not confirm to protocol 'UITableViewDataSource' " when I try to run the example.

有人可以帮帮我吗?我在本网站上遇到了其他问题,并为 UITableViewDataSource 添加了所有必需的功能;

Can someone please help me? I have gone through other issues on this site and added all the required functions for "UITableViewDataSource";

import UIKit import Foundation class MyViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var array1:[String] = ["one","two","three","four"] var array2:[String] = ["IOS","Android","java","c++","Swift"] let sectionCount = 2 var myTableView:UITableView! // init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { // var rect = CGRectMake(0, 0, 220, 320) // myTableView = UITableView(frame: rect, style: UITableViewStyle.Grouped) // super.init(nibName: nil, bundle: nil) // // Custom initialization // } override func viewDidLoad() { super.viewDidLoad() var rect = CGRectMake(0, 0, 320, 600) myTableView = UITableView(frame: rect, style: UITableViewStyle.Grouped) myTableView!.delegate = self myTableView!.dataSource = self self.view.addSubview(myTableView) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } //dataSourrce //tableview:tableview,section: func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int{ switch section{ case 0: return array1.count case 1: return array2.count default: return 1 } } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { //func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!{ //---cellstart---- let identifier = "identifier" // var cell:UITableViewCell //cell var cell = tableView.dequeueReusableCellWithIdentifier(identifier) as? MyCell if cell == nil { // cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: identifier) cell = MyCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: identifier) } //---cellend---- switch indexPath.section{ case 0: // cell!.textLabel.text = array1[indexPath.row] cell!.myLable!.text = array1[indexPath.row] case 1: // cell!.textLabel.text = array2[indexPath.row] cell!.myLable!.text = array2[indexPath.row] default: println() } var image = UIImage(named: "images/qq.png") // cell!.imageView.image = image cell!.myImageView!.image = image // cell!.detailTextLabel.text = "\(indexPath.section)\(indexPath.row) return cell! } //dataSourrce func numberOfSectionsInTableView(tableView: UITableView!) -> Int { return sectionCount } func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { var title:String? = nil switch section { case 0: title = "Num" case 1: title = "Prog" default: title = nil } return title } func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { println("Test\(indexPath.section) \(indexPath.row)") } func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return 60.0 } func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int {} func pickerView(pickerView: UIPickerView!,numberOfRowsInComponent component: Int) -> Int{} func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?{ } func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController?{ } }

**** *************我的细胞类********************************** *

***************** My Cell Class ***********************************

import Foundation import UIKit class MyCell: UITableViewCell { let indetifier:String = "indetifier" var myLable:UILabel? var myImageView:UIImageView? override init(style: UITableViewCellStyle, reuseIdentifier: String!) { super.init(style: .Subtitle, reuseIdentifier: indetifier) var rect = CGRectMake(10, 0, 60, 30) self.myLable = UILabel() self.myLable!.frame = rect self.myLable!.textColor = UIColor.redColor() self.contentView.addSubview(self.myLable!) var imageRect = CGRectMake(160, 10, 40, 40) self.myImageView = UIImageView() self.myImageView!.frame = imageRect self.contentView.addSubview(self.myImageView!) } required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } }

推荐答案

您需要查看整个错误消息。此特定消息包含有关缺少哪些方法的其他信息:

You need to look at the whole error message. This specific message includes additional information about which methods are missing:

Type 'MyViewController' does not conform to protocol 'UITableViewDataSource' Protocol requires function 'tableView(_:numberOfRowsInSection:)' with type '(UITableView, numberOfRowsInSection: Int) -> Int' Candidate has non-matching type '(UITableView!, numberOfRowsInSection: Int) -> Int'

所以...你的numberOfRowsInSection需要一个可选的UITableView,并且应该带一个必需的UITableView(这个是他们在6和6.1之间进行的更改,所有UITableView委托和数据源方法现在都需要tableView和indexPath值)

So... your numberOfRowsInSection takes an optional UITableView, and should take a required UITableView (this is a change they made between 6 and 6.1, all UITableView delegate and datasource methods now take required tableView and indexPath values)

更多推荐

iOS:'MyViewController'不符合协议'UITableViewDataSource'

本文发布于:2023-11-26 08:44:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1633422.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不符合   协议   iOS   UITableViewDataSource   MyViewController

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!