2016-02-03 59 views
13

你好,我正在實現一個圖形數據結構。當我嘗試建立應用程序的我從這裏https://github.com/waynewbishop/SwiftStructuresSwift Error:源文件中的編輯器佔位符

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

得到「源文件編輯器佔位符」

全圖實現從WayneBishop的GitHub上拉錯誤,我改變了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次。這個問題也被問到,但沒有回答。

我認爲這個錯誤可能是由於我對Node類中的init()所做的更改。在我更改之前,它只是init()。如果是這樣,我該如何添加對象到課堂上?如果我的編程術語不正確,請原諒我,因爲我對OOP比較陌生。

+4

是(Cmd + shift + K)暴徒生活!!!! – vinidog

+0

@AhmetAkkök我不知道你做了什麼來創建這樣的問題,但是這個錯誤*目前*與你的建議沒有任何關係。他的代碼是'Node(key:String?'< - 他只需插入而不是'String'?它的值爲 – Honey

回答

7

你有這

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

錯誤是直截了當的,因爲你在函數調用中使用了錯誤的佔位符。在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() { 

} 
+1

,所以虛擬值需要放在初始化器中才能編譯? –

+0

它的不是虛擬值,你需要初始化當時可用的數據,如果沒有,你可以傳遞空數據,否則使用第二種方法來初始化 –

+0

我試過了,它返回一個錯誤「Can not Invoke Initializer for Type'Node'沒有參數' –

2

有時候的XCode不會忘記其中有一個「編輯器佔位符」,即使你有一個值替換它的行。剪下XCode抱怨的代碼部分,並將代碼粘貼到同一位置以使錯誤消息消失。這對我有效。

相關問題