Подтвердить что ты не робот

Ошибка Swift: Заполнитель редактора в исходном файле

Здравствуйте, я реализую структуру данных графа. Когда я пытаюсь создать приложение, я получаю сообщение об ошибке "Заполнитель редактора в исходном файле"

Полная реализация графа была вытащена из WayneBishop GitHub здесь 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)
     }
}

Я изменил класс Node вокруг:

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!]()
     }

}

Эта ошибка происходит 5 раз в течение всего кода, который я создал до сих пор. Также этот вопрос задан, но не ответил.

Я думаю, что ошибка может быть связана с моими изменениями в init() в классе Node. До моих изменений это было просто init(). Если это так, как добавить объекты в класс? Простите меня, если я не прав в своей терминологии программирования, поскольку я относительно новичок в ООП.

4b9b3361

Ответ 1

у вас было это

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

который был надписью владельца места выше, вам нужно вставить некоторые значения

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

Ответ 2

Иногда XCode не забывает строку с "Заместителем редактора", даже если вы заменили ее значением. Отрежьте часть кода, где XCode жалуется, и вставьте код обратно в то же место, чтобы сообщение об ошибке исчезло. Это сработало для меня.

Ответ 3

После Ctrl + Shift + B проект работает нормально.

Ответ 4

Ошибка прямолинейна и ее из-за неправильных заполнителей, которые вы использовали при вызове функции. Внутри init вы не передаете какие-либо параметры своей функции. Это должно быть так.

destination = Node("some key", neighbors: [edge1 , edge2], visited: true, lat: 23.45, long: 45.67) // fill up with your dummy values

Или вы можете просто инициализировать методом по умолчанию

destination = Node()

UPDATE

Добавьте пустой инициализатор в класс Node

init() {

}

Ответ 5

Если у вас есть эта ошибка, когда вы создаете сегменты с контроллерами представления, а не с элементами пользовательского интерфейса, вы должны изменить sender: Any? к этому

@IBAction func backButtonPressed(_ sender: Any) {
        performSegue(withIdentifier: "goToMainScreen", sender: self)

    }

Это будет работать.

Ответ 6

Папка "Чистая сборка" + построить

очистит любую ошибку, которая может у вас возникнуть, даже после исправления вашего кода.