2016-02-03 14 views
13

हैलो मैं ग्राफ डेटा संरचना को कार्यान्वित कर रहा हूं। जब मैं आवेदन बनाने की कोशिश मैं मैं करने के लिए चारों ओर Node वर्ग परिवर्तित यहाँ 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) 
    } 
} 

से

पूर्ण ग्राफ कार्यान्वयन WayneBishop के GitHub से खींचा गया था "स्रोत फ़ाइल में संपादक प्लेसहोल्डर" त्रुटि मिलती है:

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() में मेरे परिवर्तनों के कारण त्रुटि हो सकती है। मेरे परिवर्तन से पहले यह केवल init() था। यदि यह है, तो मैं कक्षा में वस्तुओं को कैसे जोड़ सकता हूं? मुझे क्षमा करें यदि मैं अपने प्रोग्रामिंग शब्दावली में सही नहीं हूं, क्योंकि मैं ओओपी के लिए अपेक्षाकृत नया हूं।

+4

हाँ (सीएमडी + शिफ्ट + के) ठग जीवन !!!! – vinidog

+0

@ AhmetAkkök मुझे नहीं पता कि आपने ऐसा कोई मुद्दा बनाने के लिए क्या किया है, लेकिन इस त्रुटि * वर्तमान में * आपके सुझाव के साथ कुछ भी नहीं है। उसका कोड 'नोड (कुंजी: स्ट्रिंग? '<- उसे बस' स्ट्रिंग' 'के बजाय डालना है। यह – 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() 

अद्यतन

अपने नोड वर्ग में खाली initialiser जोड़े

init() { 

} 
+1

के मान की अपेक्षा कर रहा है, इसलिए उन्हें संकलित करने के लिए प्रारंभिक में डमी मानों को रखा जाना चाहिए? –

+0

इसकी डमी वैल्यू नहीं, आपको उस समय आपके साथ उपलब्ध डेटा के साथ शुरुआत करने की आवश्यकता है। यदि नहीं, तो आप खाली डेटा पास कर सकते हैं। अन्यथा –

+0

शुरू करने के लिए दूसरी तरफ उपयोग करें। मैंने कोशिश की और यह एक त्रुटि देता है "टाइप के लिए प्रारंभकर्ता को आमंत्रित नहीं किया जा सकता" बिना तर्क के –

2

डालने के लिए कभी कभी, XCode रेखा है जो एक "संपादक प्लेसहोल्डर" था भले ही आप इसे एक मूल्य के साथ जगह ले ली है भूल नहीं है की जरूरत है। कोड का हिस्सा कट करें जहां एक्सकोड शिकायत कर रहा है और त्रुटि संदेश को दूर करने के लिए कोड को उसी स्थान पर पेस्ट कर रहा है। यह मेरे लिए काम किया।

संबंधित मुद्दे