ios - How to use Swift extensions functions inside initializers? -


मैं अपनी SKScene स्विफ्ट क्लासेस को एक SpriteKit नोड < / मजबूत> लोड किए गए एटलस से बनावट का उपयोग करके और नोड का नाम सेट कर लें, मुझे हर दूसरे नोड के लिए उपयोग करने वाली लाइनों को सहेजने के लिए, और मैं इसे विस्तार के रूप में उपयोग कर रहा हूं क्योंकि मैं इसे लिखना नहीं चाहता हूं प्रत्येक वर्ग में विधि मुझे बनाती है इसके अलावा, मुझे विधि विधि के रूप में विधि बनाना होगा या मुझे init में एक ही त्रुटि मिलती है।

यह मेरा एक्सटेंशन का कोड है:

  आयात करें SpriteKit आंतरिक विस्तार SKScene {func नोडविथ टिचचर (एटलस: स्केलेक्शंसएटलास, बनावट: स्ट्रिंग, नाम: स्ट्रिंग) - & gt; SKSpriteNode {nodeTestructure = atlas.textureNamed (बनावट) नोड = SKSpriteNode (बनावट: नोडटैक्शंस) नोड.नाव = नाम वापसी नोड}}  

अब, इस के साथ मेरी समस्या यह है कि मैं कर सकता हूँ मेरे दृश्य के initilizer में विधि का उपयोग नहीं यह मुझे एक सुपर इंटिट त्रुटि दे रहा है जो मुझे समझ में नहीं आ रहा है।

यह तब त्रुटि है जब मैं इनिट के अंदर एक्सटेंशन का उपयोग करने से पहले super.init (आकार: आकार) ) कॉल।

यहां छवि विवरण दर्ज करें

और यह एक त्रुटि है जब मैंने इसे super.init (आकार) कॉल के बाद उपयोग करने का प्रयास किया।

प्रश्न अद्यतन

मैं नैट के जवाब के लिए अगले दृष्टिकोण का उपयोग करते हुए मेरी समस्या का समाधान करता हूं।

पहले मैंने आरंभ किया घोषणा अवधि में सभी संग्रहीत गुण:

  पृष्ठभूमि = SKSpriteNode ()  

तो मैं super.init के बाद एक्सटेंशन विधि को कॉल करता हूं (आकार: आकार) कॉल और सब कुछ सेट किया गया है:

  super.init (आकार: आकार) पृष्ठभूमि = नोडविथ टिचचर (एटलस, बनावट: "बीजी", नाम: "पृष्ठभूमि" )  

Comments

Popular posts from this blog

apache - 504 Gateway Time-out The server didn't respond in time. How to fix it? -

c# - .net WebSocket: CloseOutputAsync vs CloseAsync -

c++ - How to properly scale qgroupbox title with stylesheet for high resolution display? -