2017-07-28 5 views
6

असल में, स्विफ्ट मुझे ऐसा करने की अनुमति नहीं देता है -कक्षा संग्रहीत गुण कक्षाओं में समर्थित क्यों नहीं हैं?

// वर्ग संग्रहीत गुण कक्षाओं में समर्थित नहीं हैं, तो आपका मतलब 'स्थैतिक' है।

class var hello = "hello" 

हालांकि इस ठीक है -

static var hi = "hi" 

मुझे पता है कि स्विफ्ट में कक्षा और स्टेटिक के बीच अंतर यह है कि कक्षा चर संग्रहीत गुण संग्रहीत नहीं कर सकता है, जबकि स्टेटिक चर कर सकते हैं। हालांकि, कक्षा और स्टेटिक चर के बीच मौलिक अंतर यह है कि स्थिर चर को उप-वर्गों में ओवरराइड नहीं किया जा सकता है, जबकि कक्षा चर कर सकते हैं। यह एक कार्यक्षमता है जिसे मैं रखना चाहता हूं।

मुझे पता है कि इस मुद्दे पर उन्हें आसानी से ठीक इस एक गणना संपत्ति इस तरह एक hacky ठीक का उपयोग कर बनाने के लिए है -

class var Greeting : String { 
    return "Greeting" 
} 

इस समस्या को हल करता है, और मुझे आशा है कि यह रूप में अच्छी तरह ऑनलाइन कुछ लोगों को मदद मिलती है । हालांकि, मैं जानना चाहूंगा कि क्या कोई जानता है कि स्विफ्ट इस तरह से क्यों व्यवहार करता है, और कक्षा स्तर चर में संग्रहीत गुणों की अनुमति नहीं देता है।

+2

मैं अपने प्रश्न को समझने के लिए कोशिश कर रहा हूँ: यदि आप चिंतित हैं इस बारे में कि आप 'क्लास' कीवर्ड का उपयोग किसी प्रकार की संग्रहीत संपत्ति के साथ क्यों नहीं कर सकते हैं, भले ही 'स्थिर 'कीवर्ड ठीक वही पूरा करता है जो आप चाहते हैं? एक तरफ के रूप में, यह देखते हुए कि आप 'वर्ग' और 'संरचना' प्रकारों में प्रकार गुण प्राप्त कर सकते हैं, क्या यह 'वर्ग' कीवर्ड' के भीतर 'स्ट्रक्चर' के भीतर उपयोग करना अजीब नहीं होगा? – Rob

+0

इसके अलावा यह ठीक से नहीं करता है कि प्रश्न क्या वर्णन करता है, क्योंकि यदि आपके पास उप-वर्ग हैं तो परिणाम अलग है। और चूंकि structs विरासत नहीं हो सकता है, वे यहां लागू नहीं होते हैं। –

+0

https://stackoverflow.com/q/45467329/2976878 की तुलना करें - मुझे विश्वास नहीं है कि यह कोई वास्तविक कारण क्यों नहीं है। – Hamish

उत्तर

0

तरह swift has not implemented अभी तक संकलक त्रुटि के अनुसार यह सोचते हैं लगता है

"क्लास माल्दार वर्ग में समर्थित नहीं संग्रहीत"

enter image description here

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