À propos de "la Déclaration est valide uniquement à la portée du fichier"
j'ai un fichier d'extension de classe + swift. Après avoir ajouté un délégué que j'ai déclaré dans un autre fichier de la classe, le Xcode affiche "Declaration is only valid at file scope" à la ligne d'extension. Je ne sais pas quel est le problème.
quelqu'un Peut-il m'aider à résoudre ce problème?
class ListViewController: UIViewController, AddItemViewControllerDelegate {...}
extension ListViewController: UITableViewDataSource{
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
performSegueWithIdentifier("ShowDetail", sender: indexPath)
}
}
4 réponses
L'erreur est quelque part dans votre ...
- qui d'erreur signifie que votre ListViewController
classe n'a pas fermé, donc l'extension est interprété comme imbriquées à l'intérieur, comme ceci:
class ListViewController {
...
extension ListViewController {
}
}
trouvez le corset de fermeture manquant et vous devriez résoudre le problème.
assurez-vous que l'extension est déclarée à la fin de votre classe principale et après la dernière accolades "}"
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)
}
}
l'extension doit être au niveau de la racine - ne les intégrez pas dans une classe ou autre.
assurez-vous que votre classe et votre extension sont séparées.
class ViewController: UIViewController {}
extension name: type {}