请帮助,我在我的智慧结束。我已经按照多个教程,阅读了类似于我能找到的每个线程,五个小时之后,我仍然迷路并得到同样的错误:“类型ViewController不符合UITableViewDataSource。”
代码:
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var proTable: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
proTable.reloadData()
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return pcMgr.pros.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "Default Pros")
cell.textLabel?.text = pcMgr.pros[indexPath.row].name
return cell
}
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
if (editingStyle == UITableViewCellEditingStyle.delete){
pcMgr.pros.remove(at: indexPath.row)
proTable.reloadData()
}
}
}
}
答案 0 :(得分:1)
用这个替换你的代码,你已经使用了<script>
var grandtotal=0;
function startCalc(event){
var el=event.target;
var parent=el.parentNode.parentNode;
var price=parent.querySelectorAll('input[name="price"]')[0];
var disc=parent.querySelectorAll('input[name="disc"]')[0];
var out=parent.querySelectorAll('span[data-name="tot"]')[0];
var tot=parseFloat( price.value ) * parseInt( disc.value );
var subtot=parseFloat( price.value )-parseInt( tot );
grandtotal+=subtot;
out.innerHTML=subtot;
}
</script>
函数内的旧语法。
viewDidLoad
答案 1 :(得分:0)
所需UITableViewDataSource
方法的语法不正确。
试试这个:
@available(iOS 2.0, *)
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
<#code#>
}
@available(iOS 2.0, *)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
<#code#>
}
因为你已经符合协议,我建议在方法声明中使用XCode自动完成。使用escape键查看方法声明。
答案 2 :(得分:0)
Swift 3中协议函数的正确语法
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell ;
return cell
}
在viewDidLoad方法之外使用这些方法。这些方法应该在viewDidLoad中。
答案 3 :(得分:0)
- 从viewDidLoad()
中删除函数- 删除数组
- 添加功能&#34; numberOfSections&#34;到代码
希望这有帮助!
"\0GITCRYPT\0"