About "Declaration is only valid at file scope"

delegates, ios, swift

Solution

The error is somewhere in your `...` — that error means that your `ListViewController` class didn't get closed, so the extension is being interpreted as nested inside, like this:

class ListViewController {
    ...
    extension ListViewController {
    }
}

Find the missing closing brace and you should solve the problem.

Problem

I have a class and extension Swift file. After adding a delegate that I declared in another file to the class, Xcode shows this error Declaration is only valid at file scope at the extension line. I don't know what the problem is. Can anyone help me to fix it? ``` class ListViewController: UIViewController, AddItemViewControllerDelegate {...} extension ListViewController: UITableViewDataSource{ func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true) performSegueWithIdentifier("ShowDetail", sender: indexPath) } } ```

Original source