memory - Advantage of data type id vs NSString in Objective C? -


यह कोड ...

  NSString * s = [[NSString alloc] initWithString: @"नमस्ते दुनिया"]; S = s.lowercaseString; एनएसएलॉग (@ "% @", एस);  

... डॉट नोटेशन के उपयोग की अनुमति देता है, लेकिन जोर से टाइप किया जाता है यह कोड ...

  आईडी s = [[NSString alloc] initWithString: @ "हैलो, विश्व"]; S = [एस लोअरस्ट्रेस स्ट्रिंग]; एनएसएलॉग (@ "% @", एस);  

... कमजोर रूप से टाइप किया गया है और इसे चौकोर ब्रैकेट्स के उपयोग की आवश्यकता है।

इसके अलावा, क्या एक दूसरे के ऊपर एक का उपयोग करने का कोई फायदा है?

यदि आप एक NSString बना रहे हैं, तो आप इसे एक < कोड> एनएसएसटीइंग , और कंपाइलर को आपकी सहायता करने दें।

आईडी का इस्तेमाल करना मजबूत युग्मन को रोकने के लिए है, और ऐसे ऑब्जेक्ट का उपयोग करने के लिए जिनके प्रकार बाद के समय तक नहीं जानते हैं। जैसे IBAction पद्धतियों में प्रेषक को एक पैरामीटर के रूप में एक आईडी के रूप में शामिल किया जाता है, क्योंकि वस्तु का सही प्रकार ज्ञात नहीं है।

जोड़ने के लिए संपादित:

आप भाषा के लिए नया हो सकते हैं, इसलिए मैं कुछ चीजों का उल्लेख करूँगा

सबसे पहले, जहां आपके पास @ "हैलो, विश्व" है, आपके पास पहले से ही एक NSString है, बस जो स्थिर है तो आपको इसे बनाने के लिए initWithString के माध्यम से जाने की ज़रूरत नहीं है बस लिखें:

  NSString * s = @ "हैलो, विश्व";  

और, क्योंकि आपने alloc नहीं किया है, आपको इसे जारी करने की चिंता नहीं है।

दूसरा s.lowerCaseString । जैसा कि स्टीफन ने पहले ही उत्तर दिया है, यह खराब शैली माना जाता है जब आप स्ट्रिंग को लोअर केस में बदलते हैं, तो आपको स्ट्रिंग की कोई संपत्ति नहीं मिल रही है, आप स्ट्रिंग पर किए जाने वाले एक ऑपरेशन कर रहे हैं, इस स्थिति में, आपको वास्तव में ब्रैकेट सिंटैक्स का उपयोग करना चाहिए।


Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -