ios - example - Swift Error: marcador de posición del editor en el archivo fuente
swift 4 class constructor (4)
A veces, XCode no olvida la línea que tenía un "Marcador de posición de editor" incluso si lo ha reemplazado con un valor. Corte la parte del código donde XCode se queja y pegue el código en el mismo lugar para que desaparezca el mensaje de error. Esto funcionó para mí.
Hola estoy implementando una estructura de datos gráfica. Cuando intento compilar la aplicación, aparece el error "Marcador de posición del editor en el archivo de origen"
La implementación del gráfico completo se extrajo de GitHub de WayneBishop desde aquí 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)
}
}
Cambié la clase de Node
alrededor 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!]()
}
}
Este error ocurre 5 veces en todo el código que he construido hasta ahora. También esta pregunta ha sido formulada, pero no contestada.
Creo que el error puede deberse a mis cambios en el init()
en la clase Node
. Antes de mis cambios era solo init()
. Si es así, ¿cómo puedo agregar objetos a la clase? Perdóneme si no estoy correcto en mi terminología de programación, ya que soy relativamente nuevo en OOP.
El error es sencillo y se debe a los marcadores de posición incorrectos que ha utilizado en la llamada de función. Dentro de init
no estás pasando ningún parámetro a tu función. Debería ser de esta manera
destination = Node("some key", neighbors: [edge1 , edge2], visited: true, lat: 23.45, long: 45.67) // fill up with your dummy values
O simplemente puede iniciar con el método predeterminado
destination = Node()
ACTUALIZAR
Agregue inicializador vacío en su clase de Nodo
init() {
}
Si tiene este error mientras creas segues con los controladores de vista, no con los elementos de la interfaz de usuario, debe cambiar el sender: Any?
a esto
@IBAction func backButtonPressed(_ sender: Any) {
performSegue(withIdentifier: "goToMainScreen", sender: self)
}
Funcionará.
tuviste esto
destination = Node(key: String?, neighbors: [Edge!], visited: Bool, lat: Double, long: Double)
que era el texto del marcador de posición anterior, es necesario insertar algunos valores
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)
}
}