关于“声明仅在档案范围有效” [英] About "Declaration is only valid at file scope"

查看:187
本文介绍了关于“声明仅在档案范围有效”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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

  class ListViewController:UIViewController,AddItemViewControllerDelegate {...} 

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

}


解决方案

错误在您的 ... - 该错误意味着您的 ListViewController 类没有关闭,所以扩展名被解释为内嵌嵌套,如下所示:

  class ListViewController {
...
extension ListViewController {
}
}

找到缺少的大括号,你应该解决问题。


I have a class+extension swift file. After adding a delegate that I declared in another file to the class, the Xcode shows "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)
    }

}

解决方案

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.

这篇关于关于“声明仅在档案范围有效”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆