2015-11-05 7 views
9

मैं एक नए ऐप के लिए एक थर्ड-पार्टी लाइब्रेरी का उपयोग कर रहा हूं जिसे मैं स्विफ्ट का उपयोग कर रहा हूं। कक्षा/पुस्तकालय के लेखक ने इसे final कीवर्ड का उपयोग करके अंतिम रूप दिया है, संभवतः अनुकूलित करने और इसकी गुणों और विधियों को ओवरराइड करने से रोकने के लिए।क्या मैं स्विफ्ट में अंतिम श्रेणी का विस्तार कर सकता हूं?

उदाहरण:

final public class ExampleClass { 
    // Properties and Methods here 
} 

क्या यह संभव है मेरे लिए वर्ग का विस्तार करने और चूक अधिभावी बिना कुछ नए गुणों और इसे करने के लिए तरीके जोड़?

तो जैसा:

extension ExampleClass { 
    // New Properties and Methods inside 
} 

उत्तर

7

विस्तार संग्रहीत गुण शामिल नहीं हो सकता, लेकिन आप के अंदर तरीकों जोड़ सकते हैं।

5

एक्सटेंशन (जैसे उद्देश्य-सी श्रेणियां) संग्रहीत गुणों की अनुमति नहीं देते हैं।
हालांकि विधि और गणना गुण ठीक हैं।

उद्देश्य-सी में एक आम (लेकिन आईएमओ हैकी) वर्कअराउंड श्रेणियों के भीतर भंडारण प्राप्त करने के लिए associated objects का उपयोग करना था। अगर आप import ObjectiveC पर स्विफ्ट में भी काम करते हैं।
इस उत्तर में some details है।

+0

चलो याद दिलाएं कि यह केवल 'एनएसओब्जेक्ट' उप-वर्गों को जोड़ने के लिए काम करता है। –

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