Bonjour, je suis en train de mettre en place une structure de données graphique. Lorsque j'essaie de créer l'application, l'erreur "Erreur de l'éditeur dans le fichier source" s'affiche.
L'implémentation complète du graphique a été extraite de WayneBishop's GitHub à partir d'ici https://github.com/waynewbishop/SwiftStructures
class Path {
var total: Int!
var destination: Node
var previous: Path!
init(){
//Error happens on next line
destination = Node(key: String?, neighbors: [Edge!], visited: Bool, lat: Double, long: Double)
}
}
J'ai changé la classe Node
autour de:
public class Node{
var key: String?
var neighbors: [Edge!]
var visited: Bool = false
var lat: Double
var long: Double
init(key: String?, neighbors: [Edge!], visited: Bool, lat: Double, long: Double) {
self.neighbors = [Edge!]()
}
}
Cette erreur se produit 5 fois dans le code que j'ai construit jusqu'à présent. Aussi cette question a été posée, mais pas répondu.
Je pense que l'erreur peut être due à mes modifications de la fonction init()
dans la classe Node
. Avant mes modifications, c'était simplement init()
. Si c'est le cas, comment puis-je ajouter des objets à la classe? Pardonnez-moi si je ne suis pas correct dans ma terminologie de programmation, car je suis relativement nouveau en POO.
tu avais ça
destination = Node(key: String?, neighbors: [Edge!], visited: Bool, lat: Double, long: Double)
qui était le texte de titulaire ci-dessus, vous devez insérer des valeurs
class Edge{
}
public class Node{
var key: String?
var neighbors: [Edge]
var visited: Bool = false
var lat: Double
var long: Double
init(key: String?, neighbors: [Edge], visited: Bool, lat: Double, long: Double) {
self.neighbors = [Edge]()
self.key = key
self.visited = visited
self.lat = lat
self.long = long
}
}
class Path {
var total: Int!
var destination: Node
var previous: Path!
init(){
destination = Node(key: "", neighbors: [], visited: true, lat: 12.2, long: 22.2)
}
}
Parfois, XCode n'oublie pas la ligne qui avait un "espace réservé pour l'éditeur" même si vous l'avez remplacée par une valeur. Coupez la partie du code où XCode se plaint et collez le code au même endroit pour que le message d'erreur disparaisse. Cela a fonctionné pour moi.
L'erreur est simple et est due aux mauvais paramètres fictifs que vous avez utilisés dans l'appel de fonction. Dans init
, vous ne transmettez aucun paramètre à votre fonction. Ça devrait être comme ça
destination = Node("some key", neighbors: [Edge1 , Edge2], visited: true, lat: 23.45, long: 45.67) // fill up with your dummy values
Ou vous pouvez simplement initialiser avec la méthode par défaut
destination = Node()
METTRE À JOUR
Ajouter un initialiseur vide dans votre classe Node
init() {
}