यह एक अपरिवर्तनीय स्ट्रिंग वस्तु का उत्पादन:कोको: यह पता लगाने के लिए कि कोई एनएसएसटींग अपरिवर्तनीय या परिवर्तनीय है या नहीं?
NSString* myStringA = @"A"; //CORRECTED FROM: NSMutableString* myStringA = @"A";
यह एक अस्थायी स्ट्रिंग वस्तु का उत्पादन:
NSMutableString* myStringB = [NSMutableString stringWithString:@"B"];
लेकिन दोनों वस्तुओं वस्तु की ही तरह, "NSCFString" के रूप में रिपोर्ट कर रहे हैं:
NSLog(@"myStringA is type: %@, myStringB is type: %@",
[myStringA class], [myStringB class]);
तो इन वस्तुओं को आंतरिक रूप से अलग करना क्या है, और मैं इसके लिए परीक्षण कैसे करूं, ताकि मैं आसानी से यह निर्धारित कर सकूं कि कोई रहस्य स्ट्रिंग चर अपरिपक्व है या नहीं इससे कुछ बुरा करने से पहले सक्षम या परिवर्तनीय?
फिलिप का कोड नीचे - अगर ([myStringB isKindOfClass: [NSMutableString class]]) - व्यावहारिक समस्या को हल करता है और हल करता है। – StringSection
मैं अभी भी उत्सुक हूं कि एक अपरिवर्तनीय और परिवर्तनीय स्ट्रिंग के बीच का अंतर आंतरिक रूप से कैसे प्रदर्शित किया जा रहा है, और यदि इसे सीधे पाया जा सकता है (वास्तविक "प्रकार की वस्तु" एनएसएलओजी के साथ मुद्रित)। – StringSection
सुधार: मुझे गलती हुई थी, कोड - अगर ([myStringB isKindOfClass: [NSMutableString क्लास]]) - सब के बाद काम नहीं कर रहा है। यह सच है कि स्ट्रिंग NSString या NSMutableString है या नहीं। जैसा कि फिलिप नीचे इंगित करता है (अलग-अलग कोड के साथ अपने अब संपादित उत्तर में) जाहिर तौर पर रनटाइम पर म्यूटेबल बनाम अपरिवर्तनीय वस्तुओं का पता लगाने के लिए कोई दस्तावेज नहीं है। – StringSection