initialize example constructores apple ios swift class

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