Swift 实现UITableView报错, does not conform to protocol 'UITableViewDataSource'

Swift语言中的UITableView中着实很坑爹,为什么呢,因为在遵循协议后经常会报这样的错误:does not conform to protocol ‘UITableViewDataSource‘。而且是第一次尝试的伙伴们经常会发现,我写的代码没有问题呀,该写的都写了,为什么还是报错呢,有的时候是xcode的问题,有的时候又是自己遵循的协议中有必需实现的方法而没有实现导致的。所以遇到这种问题,大家不妨跳进代理中去看看必须实现的方法都实现的没有。

下面是我写的一个小demo,大家可以看看。

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{

var dataArray: NSMutableArray?

var tableView: UITableView?

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

self.view.backgroundColor = UIColor.orangeColor()

self.navigationItem.title = "您好 Swift"

self.dataArray = NSMutableArray()

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

self.dataArray!.addObject("您好 Swift")

NSLog("%@", self.dataArray!)

self.tableView = UITableView(frame: self.view.frame, style:UITableViewStyle.Plain)

self.tableView!.delegate = self

self.tableView!.dataSource = self

self.tableView!.registerClass(UITableViewCell.self, forCellReuseIdentifier: "MyTestCell")

self.view.addSubview(self.tableView!)

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{

return self.dataArray!.count

}

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

let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "MyTestCell")

var string :String = self.dataArray?.objectAtIndex(indexPath.row)as String

cell.textLabel.text = string

cell.textLabel.text = string

return cell

}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){

tableView.deselectRowAtIndexPath(indexPath, animated: true)

var controller = secondViewController()

controller.title = "Swift 的自我介绍"

controller.view.backgroundColor = UIColor(red: 10/255.0, green: 100/255.0, blue: 200/255.0, alpha: 1.0)

self.navigationController?.pushViewController(controller, animated: true)

}

}

Swift 实现UITableView报错, does not conform to protocol 'UITableViewDataSource'

时间: 2024-10-11 21:08:29

Swift 实现UITableView报错, does not conform to protocol 'UITableViewDataSource'的相关文章

Swift开发教程--实现UITableView报错does not conform to protocol 'UITableViewDataSource‘

通过实践,要是把下面三个协议方法都实现了就不会报错了.另外还需要注意!的问题. func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ } func tableView(ta

Swift 给UITableView 写extension 时 报错 does not conform to protocol 'UITableViewDataSource'

那是因为你没有实现 数据源和代理方法 实现下就好了 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 0 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { return UITableViewCell() } Sw

axios报错: Cannot read property 'protocol' of undefined ....

错误: Uncaught (in promise) TypeError: **Cannot read property 'protocol' of undefined ... 源码: 完整错误: import axios from 'axios' import VueAxios from 'vue-axios' Vue.use(axios, VueAxios) 修正一:(亲测) import axios from 'axios' import VueAxios from 'vue-axios'

安装xcode6 beta 后调试出现Unable to boot the iOS Simulator以及编译苹果官方Swift的demo报错failed with exit code 1的解决的方法

苹果昨天公布新语言Swift(雨燕),须要安装xcode6 以及mac os 系统为10.9以上. (xcode6 beta 可在官方下载.须要登录开发人员账号:mac os 系统直接更新就可以.在此就不详细说明了) 在安装完成后,打开xcode6,新建一个项目,编译正常,但执行却出错.模拟器无法正常启动(黑屏),xcode弹出Unable to boot the iOS Simulator. 重装xcode6.重新启动后依然报错. 后来在苹果官方下载专门演示swift的demo,编译时出错:

IPv6调用java后端接口报错:java.net.SocketException: Protocol family unavailable

目前需求是java后端的接口需要支持IPv6.先确认linux机器已经绑定了IPv6: CMREAD-SV43 apache-tomcat/bin> ifconfig eth0 Link encap:Ethernet HWaddr 2C:76:8A:AF:9E:82 inet addr:192.168.11.11 Bcast:192.168.11.111 Mask:255.255.255.0 inet6 addr: fe80::2e76:8aff:feaf:9e82/64 Scope:Link

jdk1.8换成11,启动项目报错java.net.MalformedURLException: unknown protocol: jrt

jdk11 Information:Internal caches are corrupted or have outdated format, forcing project rebuild: Module 'messystem' production: java.net.MalformedURLException: unknown protocol: jrt 解决:据说jdk11完美兼容以前jdk,但是项目是使用1.8 编写,报错,在project structure->modules->

使用CocoaPod导入Swift第三方库报错

在使用cocoapod导入swift第三方时出现这样的错误: [!] Pods written in Swift can only be integrated as frameworks; add `use_frameworks!` to your Podfile or target to opt into using it. The Swift Pod being used is: 三方库名称 一开始我使用oc的配置方法 platform :ios, '8.0' target "PodTest

springboot启动端口占用问题,报错org.apache.catalina.LifecycleException: Protocol handler start failed

解决办法,找到被占用的端口 原文地址:https://www.cnblogs.com/taopanfeng/p/11229529.html

【NetApp】SnapDrive安装过程中遇到的一些报错

报错信息1:Failed to get Data ONTAP version running on the storage system NetApp814b as it is not reachable. Ensure proper network connectivity and make sure the ..." 报错截图: 报错原因:在排除各种SnapDrive与存储控制器的网络问题后,因为该报错实在模拟器实验环境下产生的,NetApp 7mode同一个DataOntap模拟器的sys