Erreur Swift: l'éditeur placeholder dans le fichier source

Bonjour je suis à la mise en œuvre d'une structure de données de graphe. Quand j'essaie de construire l'application, j'obtiens l'erreur "Editor placeholder in source file"

L'un graphe complet de la mise en œuvre a été tiré à partir WayneBishop de 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é le Node Classe 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. Cette question a également été posée, mais pas de réponse.

je pense que l'erreur peut être due à mes modifications à l' init() dans le Node classe. Avant mes modifications, c'était juste init(). Si elle l'est, 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 à L'OOP.

16
demandé sur Cold Fire 2016-02-03 04:51:42

3 réponses

vous avez eu ce

destination = Node(key: String?, neighbors: [Edge!], visited: Bool, lat: Double, long: Double)

qui était le texte de support de place au-dessus de vous devez insérer quelques 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)
  }
}
7
répondu David Yang Liu 2016-02-03 04:38:43

parfois, XCode n'oublie pas la ligne qui avait un "éditeur Placeholder" même si vous l'avez remplacé par une valeur. Coupez la partie du code où XCode se plaint et collez le code au même endroit pour faire disparaître le message d'erreur. Cela a fonctionné pour moi.

15
répondu Vishal Chaudhry 2017-12-31 17:39:57

Erreur est simple et c'est parce que de faux espaces réservés que vous avez utilisé dans l'appel de fonction. À l'intérieur de init vous ne passez aucun paramètre à votre fonction. Il devrait être de cette façon

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()

UPDATE

Ajouter un initialiseur vide dans votre classe de noeuds

init() {

}
1
répondu Vishnu gondlekar 2016-02-03 02:24:46