关于“声明只在文件范围内有效”
我有一个类+扩展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) } }
该错误是在你的...
– 该错误意味着你的ListViewController
类没有被closures,所以扩展被解释为嵌套在里面,像这样:
class ListViewController { ... extension ListViewController { } }
find失踪的大括号,你应该解决这个问题。
确保扩展名在主类最后,最后一个大括号“}”之后声明
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) } }
扩展必须在根本层面 – 不要将它们embedded到类或其他类中。