objective c - Smalltalk-style Messages vs. C-style Functions -


मुझे सी-स्टाइल फ़ंक्शंस बनाम संदेशों का उपयोग कब करना चाहिए?

उद्देश्य-सी आपके लिए यह अंतर बनाता है संदेशों को अवश्य भेजना होगा, लेकिन किसी भी समय फ़ंक्शंस का उपयोग किया जा सकता है।

:

उद्देश्य-सी संदेश केवल ऑब्जेक्ट को भेजा जा सकता है, और मेसेजिंग सिस्टम एक क्लास के तरीकों को कॉल करने का तरीका है।

उदाहरण:

  / / एक क्लास इंटरफ़ेस परिभाषा // जिसमें एक पद्धति सहित एक पद्धति शामिल है जिसे @ इंटरफेस एनओबैक्ट {} - (शून्य) aMethod; @end  


  // उस ऑब्जेक्ट को भेजे गए संदेश: एएनओबैक्ट * myObject = [[एएनओबैक्ट एलोक] init]; [MyObject aMethod]; // & lt; - संदेश [myObject release]; उद्देश्य सी सी सभी सी भाषा संभालती है, इसलिए सी-शैली फ़ंक्शन कॉल समर्थित हैं, और यहां तक ​​कि प्रोत्साहित भी हैं, जब स्थिति उनके लिए कहती है उद्देश्य-सी ऑब्जेक्ट्स केवल पॉइंटर्स के रूप में पास किए जाते हैं, इसलिए आप उन्हें फ़ंक्शन के रूप में तर्क के रूप में भी दे सकते हैं। सामान्य रूप से सावधानियां और कार्य करने वाले पॉइंटर्स को पारित करने के बारे में नियम, निश्चित रूप से सम्मानित किया जाना चाहिए।  

उदाहरण:

  // एक नियमित सी-स्टाइल फ़ंक्शन शून्य से कुछ फंक्शन (एएनओबीजेक्ट * तर्क) {// यहाँ कुछ करो ...}  


  // और इसे कैसे कॉल करें: कुछ फंक्शन (कुछ ऑब्जेक्ट);  

प्रत्येक का उपयोग कब करना है?

जब आप किसी एक का उपयोग करना चाहते हैं, तो संदेश / विधियां का उपयोग करें वस्तु / वर्ग। अच्छे उदाहरण NSString की लंबाई तक पहुंच रहे होंगे:

  int stringLength = [myString लंबाई];  

किसी प्रॉपर्टी का मान सेट करना:

  [myObject setHidden: हाँ];  

या कोई कार्य करने के लिए कुछ कार्य करने के लिए कह रहा है:

  [myAccount withdrawMoneyAndDriveToMexico];  

सी-स्टाइल फ़ंक्शंस का उपयोग करें जब आप एक कार्य करना चाहते हैं जो किसी वर्ग से नहीं होता है; कुछ जो अकेले खड़ा होना चाहिए अच्छे उदाहरण गणितीय कार्य होंगे जैसे:

  दोहरे डिग्री = कन्वर्टराडियनटोडेग्रेज (रेडियन);  

Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -