चूंकि स्थैतिक संग्रहीत गुण अभी तक सामान्य प्रकार के लिए समर्थित नहीं हैं (मुझे) आश्चर्य है कि एक अच्छा विकल्प क्या है।सामान्य प्रकार के स्थिर संग्रहित गुणों के लिए स्विफ्ट में एक अच्छा विकल्प क्या है?
मेरा विशिष्ट उपयोग-मामला यह है कि मैं तेजी से एक ओआरएम बनाना चाहता हूं। मेरे पास Entity
प्रोटोकॉल है जिसमें प्राथमिक कुंजी के लिए एक संबद्ध प्रकार है, क्योंकि कुछ इकाइयों के पास उनके id
के रूप में पूर्णांक होगा और कुछ में स्ट्रिंग आदि होगी। इसलिए Entity
प्रोटोकॉल जेनेरिक बनाता है।
अब मेरे पास EntityCollection<T: Entity>
प्रकार भी है, जो संस्थाओं के संग्रह का प्रबंधन करता है और जैसा कि आप देख सकते हैं कि यह सामान्य भी है। EntityCollection
का लक्ष्य यह है कि यह आपको संस्थाओं के संग्रह का उपयोग करने देता है जैसे कि वे सामान्य एरे थे, इस बात के बिना कि इसके पीछे एक डेटाबेस है। EntityCollection
पूछताछ और कैशिंग का ख्याल रखेगा और यथासंभव अनुकूलित किया जा रहा है।
मैं डेटाबेस से पहले से प्राप्त सभी इकाइयों को संग्रहीत करने के लिए EntityCollection
पर स्थिर गुणों का उपयोग करना चाहता था। इसलिए यदि EntityCollection
के दो अलग-अलग उदाहरण डेटाबेस से एक ही इकाई लाने के लिए चाहते हैं, तो डेटाबेस केवल एक बार पूछेगा।
क्या आपके पास कोई विचार है कि मैं इसे और कैसे प्राप्त कर सकता हूं?
वह मेरे लिए काम नहीं करता है के बाद से मैं जेनेरिक प्रकार के साथ काम कर रहा हूँ और उन प्रकार स्थिर संग्रहीत गुण अनुमति नहीं है। यही कारण है कि मैं इस सवाल को पोस्ट कर रहा हूं ... – Evert
शायद आप कैश को वैश्विक वैरिएबल प्रकार [AnyObject] और एंटीटी कोलेक्शन विधियों के भीतर [टी] में बदल सकते हैं? – mikem