मुझे एनएसएसटींग और एनएसएमयूटेबलस्ट्रिंग के बीच के अंतर के बारे में स्पष्टीकरण की आवश्यकता है। क्या कोई भी संक्षेप में विस्तार कर सकता है?एनएसएसटींग और एनएसएमयूटेबलस्ट्रिंग के बीच क्या अंतर है?
उत्तर
एक एनएसएसटींग इंस्टेंस को प्रारंभ करने के बाद संशोधित नहीं किया जा सकता है - यह "अपरिवर्तनीय" है। कोई एनएसएसटींग विधियां स्ट्रिंग के मान को संशोधित नहीं कर सकती हैं।
दूसरी ओर एनएसएमयूटेबल स्ट्रिंग को प्रारंभ करने के बाद संशोधित किया जा सकता है।
एंडी व्हाइट के उत्तर पर विस्तार करने के लिए, आपके कोड में एनएसएमयूटेबलस्ट्रिंग के बजाय एनएसएसटींग का उपयोग करने के लिए प्रदर्शन लाभ हो सकते हैं (हमेशा के रूप में, यह सुनिश्चित करने के लिए कि यह वास्तव में आपकी प्रदर्शन बाधा है) ऐप्पल के प्रदर्शन टूल का उपयोग करके परीक्षण करें। ऐसी परिस्थिति में जहां आप एनएसएसटींग के मान को बदलना चाहते हैं, एक विकल्प है कि इसमें एक नया एनएसएसटींग बनाया गया है जिसमें इसके बदले गए मूल्य के साथ और फिर पुराने एनएसएसटींग को नष्ट कर दें।
मान लीजिए आप इस
NSMutableString *ms = [[NSMutableString alloc] initWithString:@"Hello"];
[ms appendString:@"World"];
इनमें से
दोनों तरह इस
NSString *s = [[NSString alloc] initWithString:@"Hello"];
s = [s stringByAppendingString:@"World"];
की तरह एक कोड और अन्य कोड है, कार्यात्मक, एक अंतर के अलावा एक ही बात करते हैं - शीर्ष कोड ब्लॉक रिसाव। - [एनएसएसटींग स्ट्रिंगबैपेंडिंगस्ट्रिंग:] एक नई अपरिवर्तनीय एनएसएसटींग ऑब्जेक्ट उत्पन्न करता है जिसे आप इंगित करने के लिए पॉइंटर को बताते हैं। प्रक्रिया में, हालांकि, आप एनएसएसटींग ऑब्जेक्ट को अनाथ करते हैं जो मूल रूप से इंगित करता है। लाइन रिसाव से छुटकारा देंगी के रूप में बदलना:
s = [[s autorelease] stringByAppendingString:@"World"];
क्या यह अभी भी एआरसी ढांचे के साथ एक समस्या है? – sunny
अंतर के बीच NSMutableString और NSString है कि
NSMutableString:NSMutableString वस्तुओं अंतर्निहित सरणी को संशोधित करने के तरीकों प्रदान करते हैं वे वर्णों का प्रतिनिधित्व करते हैं, जबकि एनएसएसटींग नहीं है। उदाहरण के लिए, NSMutableString तरीकों को उजागर करता है इस तरह के appendString, deleteCharactersInRange, insertString, replaceOccurencesWithString, आदि इन सभी तरीकों स्ट्रिंग पर काम के रूप में यह स्मृति में मौजूद है के रूप में।
NSString: दूसरी ओर केवल एक बनाने-बार तत्कालीन केवल पढ़ने के लिए स्ट्रिंग अगर आप करेंगे; आप पाएंगे कि इसके सभी "मैनिपुलेशन" विधियों (सबस्ट्रिंग, अपरकेसस्ट्रिंग, आदि) अन्य एनएसएसटींग ऑब्जेक्ट्स लौटाते हैं और वास्तव में स्मृति में मौजूदा स्ट्रिंग को वास्तव में संशोधित नहीं करते हैं।
- 1. एनएसएसटींग या एनएसएमयूटेबलस्ट्रिंग
- 2. एनएसएमयूटेबलस्ट्रिंग और एनएसएसटींग दोनों का उद्देश्य क्या है?
- 3. # {} $ {} और% {} के बीच क्या अंतर है?
- 4. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 5. $ और $$ के बीच क्या अंतर है?
- 6. के बीच क्या अंतर है:। और: आर !?
- 7. भिन्नता और '-' के बीच क्या अंतर है?
- 8. "$^एन" और "$ +" के बीच क्या अंतर है?
- 9. क्या एनएसएसटींग तुलना के बीच कोई अंतर है: और isEqual (ToString) :?
- 10. एनएसएमयूटेबलस्ट्रिंग
- 11. के बीच क्या अंतर है?
- 12. अंतर और कहां के बीच क्या अंतर है?
- 13. मैं एक एनएसएमयूटेबलस्ट्रिंग को नियमित एनएसएसटींग में कैसे परिवर्तित करूं?
- 14. file_get_contents और fread बीच क्या अंतर है
- 15. क्या बीच का अंतर है :: और ::: स्काला
- 16. "। +" और "। +?" के बीच अंतर
- 17. $ {} और # {} के बीच अंतर क्या हैं?
- 18. PHP के बीच क्या अंतर है और इसमें शामिल है?
- 19. अपवाद के .TOString() और मैसेज के बीच क्या अंतर है?
- 20. 7zip के 7z.sfx और 7zsd.sfx के बीच क्या अंतर है?
- 21. डीएल के फाइलवर्सन और उत्पादवर्जन के बीच क्या अंतर है?
- 22. UIImageView के फ्रेम और सीमाओं के बीच क्या अंतर है?
- 23. फ़ायरबग के console.log() और console.debug() के बीच क्या अंतर है?
- 24. पैरामीटर परिभाषाओं के बीच अंतर (प्रकार और नाम), और (प्रकार * नाम) के बीच अंतर क्या हैं?
- 25. ओरिएंटब संस्करणों के बीच क्या अंतर है?
- 26. एन्कोड/डीकोड के बीच क्या अंतर है?
- 27. os.popen() विधियों के बीच क्या अंतर है?
- 28. MATLAB में & &&& के बीच क्या अंतर है?
- 29. ऑब्जेक्ट और * के बीच अंतर?
- 30. इन कार्यों के बीच क्या अंतर है?
मुझे लगता है कि आप एक अच्छा विचार प्राप्त कर सकते हैं कि वे प्रत्येक पर उपलब्ध विधियों की जांच करके क्या करते हैं। –