我有一个父视图UIViewController(在故事板上),一个带有.xib的TableViewController和带有.xib的TableViewCell。我正在尝试将DataSource连接到TableView,但是它给了我一个错误:
'TableView1'与协议'UITableViewDataSource'
的冗余一致性'TableView1'继承了来自超类的协议'UITableViewDataSource'的一致性。
如果不在类附近添加dataSource并将其作为class TableView1: UITableViewController {..
尝试,它不会给我任何错误,在模拟器中,当我向下滚动时,我可以看到表格视图错觉。
但是,当我尝试添加dataSource时,它给了我这些错误。
我设置它的路径......:
Ctrl +从xib拖动到TableView1并将其连接为Globals
在xib文件中,我连接了DataSource&代表
class TableView1: UITableViewController, UITableViewDataSource {
错误..
@IBOutlet var GlobalsTableView: UITableView!
var results: [AnyObject]? = []
override func viewDidLoad() {
super.viewDidLoad()
print("A")
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return self.results?.count ?? 0
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! DogTableViewCell
return cell
}
}
请注意,在TableView1.xib中,我无法选择TableView1
作为自定义类 - >上课(但我不认为这是必要的)。
答案 0 :(得分:13)
当某个类继承自UITableViewController
时,它默认符合UITableViewDataSource
& UITableViewDelegate
您无需明确指定它。
只有在UITableViewDataSource
中嵌入UITableViewDelegate
时,才需要符合UITableView
和UIViewController
。
答案 1 :(得分:0)
您的课程中至少有2种构象。您只需要扩展一次。
第一种情况:
您遵循类说明和扩展名。在类说明中删除“我的代表”。
class MyViewController: MyDelegate{
//class functions here
}
extension MyViewController: MyDelegate{
func1()
}
第二种情况:
您遵循两个扩展名。
extension MyViewController: MyDelegate{
func1()
}
extension MyViewController: MyDelegate{
func2()
}
将它们合并为一个扩展,例如:
extension MyViewController: MyDelegate{
func1()
func2()
}