Ошибка 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()
. Если это так, как добавить объекты в класс? Простите меня, если я не прав в своей терминологии программирования, поскольку я относительно новичок в ООП.
Ответы
Ответ 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
Папка "Чистая сборка"
+
построить
очистит любую ошибку, которая может у вас возникнуть, даже после исправления вашего кода.