2009-08-30 4 views
5

यह कुछ हद तक भ्रमित है। NSMutableString NSString से विरासत में मिलता है, लेकिन क्या इसका यह भी अर्थ है कि मैं कहीं भी एनएसएमयूटेबलस्ट्रिंग को सुरक्षित रूप से पास कर सकता हूं जहां वास्तव में एक एनएसएसटींग चाहता था? और क्या मैं एनएसटीयूटेबल स्ट्रिंग को एनएसएसटींग असाइन कर सकता हूं? समस्याओं से बचने के लिए, मैं किसी एनएसएमयूटेबल स्टिंग से एनएसएसटींग कैसे प्राप्त करूं?एनएसएमयूटेबल स्ट्रिंग से एनएसएसटींग कैसे निकालें?

उत्तर

17
  1. हाँ, आप एक NSString के लिए एक NSMutableString पारित कर सकते हैं। हालांकि, ध्यान रखें कि यदि आप ऑब्जेक्ट को इस ऑब्जेक्ट का संदर्भ संग्रहीत करने के लिए पास करते हैं, तो यह आपके द्वारा म्यूटेबल स्ट्रिंग ऑब्जेक्ट में किए गए सभी परिवर्तनों को "देखें" देगा। यह हमेशा वांछनीय नहीं है।

  2. नहीं, संभव नहीं है। यदि आपके पास NSMutableString पॉइंटर NSString पर इंगित करता है और कहता है, appendString: पर, ऑब्जेक्ट को कॉल को संसाधित करने का तरीका नहीं पता होगा।

  3. आप एक परिवर्तनशील एक से एक गैर-परिवर्तनशील स्ट्रिंग प्राप्त करने के लिए, [mutableString copy] उपयोग करना चाहते हैं (पहले दो OO शामिल किए जाने बहुरूपता मूल बातें कर रहे हैं)।