简体   繁体   中英

Confused with UITableViewDataSource Protocol. Conflicts with previous

I have an error that idk how to fix it. The error is: "Definition conflicts with previous value." I have copied the code below and starred the portion which is flagged. Thanks in advance.

import UIKit
import Parse
class ScienceTableViewController: UITableViewController, UITableViewDataSource {
    var dataRecords = [Data]()

    override func viewDidLoad() {
        super.viewDidLoad()

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)

        dataRecords = [Data]()

        let query = PFQuery(className: "data")

        query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in

            if error == nil {

                for object in objects! {

                    let data = Data(objectID: object.valueForKey("objectId")! as! String, title: object.valueForKey("title")! as! String, date: object.valueForKey("date")! as! String, information: object.valueForKey("information")! as! String)


                    self.dataRecords.append(data)
                    self.tableView.reloadData()

                }

            } else {             
                print(error)
            }   
        }
    }

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return dataRecords.count > 0 ? 1 : 0

    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataRecords.count
    }


    **override func tableView(tableView: UITableView**, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)

            // Configure the cell...

        let title = dataRecords[indexPath.row].title
        let date = dataRecords[indexPath.row].date
        let information = dataRecords[indexPath.row].information

        cell.textLabel?.text = title
        cell.detailTextLabel?.text = date


        return cell
        }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let controller: ViewController = segue.destinationViewController as! ViewController

        if segue.identifier == "newData"  {

            controller.objectID = ""

        } else if segue.identifier == "showData" {

            let indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow!
            controller.objectID = dataRecords[indexPath.row].objectID


        }

    }


    }}

I am also getting problems with xCode where it claims "Xcode encountered a problem. Source editor functionality is limited. Attempting to restore" and the editor does not recognize the code for brief moments.

I believe your issue is with the class declaration line that has UITableViewDataSource as a protocol. A UiTableViewController already is a data source so that is redundant and should be removed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM