TableView与协议UITableViewDataSource与Xib文件的冗余一致性

问题描述 投票:3回答:2

我有一个父视图UIViewController(在故事板上),一个带有.xib的TableViewController和带有.xib的TableViewCell。我正在尝试将DataSource连接到TableView,但是它给了我一个错误:

“TableView1”与协议“UITableViewDataSource”的冗余一致性

'TableView1'继承了来自超类的协议'UITableViewDataSource'的一致性。

如果不在类附近添加dataSource并将其作为class TableView1: UITableViewController {..尝试,它不会给我任何错误,在模拟器中,当我向下滚动时,我可以看到表视图错觉。

但是,当我尝试添加dataSource时,它给了我这些错误。

我设置它的路径......:

  1. 按住Ctrl键并从xib拖动到TableView1并将其连接为Globals
  2. 在xib文件中,我连接了DataSource和Delegate

enter image description here

  1. 最后,我的TableView1:

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作为自定义类 - >类(但我不认为这是必要的)。

xcode swift uitableview xib
2个回答
15
投票

当一个类继承自UITableViewController时,它默认符合UITableViewDataSourceUITableViewDelegate,您无需明确指定它。

只有当你在UITableViewDataSource中嵌入UITableViewDelegate时才需要符合UITableViewUIViewController


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()
}
© www.soinside.com 2019 - 2024. All rights reserved.