मैंने स्विफ्ट के साथ कुछ इसा स्विज़लिंग का परीक्षण किया , और पाया कि यह केवल तब काम करता है जब NSObject एक सुपर-क्लास (सीधे या आगे तक) है, या '@objc' सजावट का उपयोग करके। अन्यथा यह C- की तरह एक स्थैतिक- और व्यवहार्य-प्रेषण शैली का अनुसरण करेगा।
क्या कोको / NSObject बेस क्लास के बिना स्विफ्ट क्लास को परिभाषित करना सामान्य है? यदि मैं चिंतित हूँ तो इसका अर्थ है ऑब्जेक्टिव-सी की गतिशीलता का बहुत अधिक उपयोग करना, जैसे कि विधि अवरोधन और रन-टाइम आत्मनिरीक्षण।
डायनेमिक रन-टाइम बिहेवियर प्रॉपर्टी ऑब्जर्वर, कोर डेटा, एस्पेक्ट ओरिएंटेड प्रोग्रामिंग , हायर ऑर्डर मैसेजिंग , एनालिटिकल और लॉगिंग फ्रेमवर्क आदि सुविधाओं के दिल में बसता है ।
ऑब्जेक्टिव-सी की स्टाइल ऑफ मेथड इनवोकेशन का इस्तेमाल करने से एक मेथड कॉल में लगभग 20 मशीन कोड ऑपरेंड जुड़ते हैं, इसलिए कुछ स्थितियों में ( छोटे शरीर वाले तरीकों के लिए कई तंग कॉल ) C ++ स्टाइल स्टैटिक और वाइबेट डिस्पैच बेहतर प्रदर्शन कर सकते हैं।
लेकिन दिए गए सामान्य 95-5 नियम ( प्रदर्शन का 95% लाभ कोड के 5% को ट्यूनिंग से आता है ), क्या यह शक्तिशाली गतिशील सुविधाओं के साथ शुरू करने और जहां आवश्यक हो वहां कठोर करने का कोई मतलब नहीं है?