关于"声明仅在文件范围内有效"

Den*_*nis 48 delegates ios swift

我有一个类+扩展名swift文件.将我在另一个文件中声明的委托添加到类后,Xcode在扩展行显示"声明仅在文件范围内有效".我不知道问题是什么.

任何人都可以帮我修复它吗?

class ListViewController: UIViewController, AddItemViewControllerDelegate {...}

extension ListViewController: UITableViewDataSource{
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        tableView.deselectRowAtIndexPath(indexPath, animated: true)
        performSegueWithIdentifier("ShowDetail", sender: indexPath)
    }

}
Run Code Online (Sandbox Code Playgroud)

Nat*_*ook 95

错误在你的某处...- 该错误意味着你的ListViewController类没有被关闭,所以扩展被解释为嵌套在里面,如下所示:

class ListViewController {
    ...
    extension ListViewController {
    }
}
Run Code Online (Sandbox Code Playgroud)

找到缺少的右括号,你应该解决问题.


pol*_*war 15

确保在主类末尾和最后一个花括号"}"之后声明扩展名

class ListViewController: UIViewController, AddItemViewControllerDelegate {
   //Make sure that everything is clean here! 
}

extension ListViewController: UITableViewDataSource{
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        tableView.deselectRowAtIndexPath(indexPath, animated: true)
        performSegueWithIdentifier("ShowDetail", sender: indexPath)
    }
}
Run Code Online (Sandbox Code Playgroud)


Jor*_*dan 15

扩展必须位于根级别 - 不要将它们嵌入到类或其他任何类中.