प्रारंभ करने में एक अच्छा तरीका है मैं 2 नए प्रश्न हैं:ढेर पर या ढेर पर संग्रहीत NSStrings हैं और क्या एक
1) इस लाइन पर विचार करें:
NSString *myString = [[NSString alloc] initWithString: @"Value"];
दो चीजें थे मैं सीखा, लेकिन मुझे पुष्टि चाहिए: जैसा कि मैंने सीखा, "आवंटन" संदेश इंगित करता है कि एनएसएसटींग का उदाहरण "ढेर" स्मृति में संग्रहीत किया जाएगा। मुझे यह भी समझा गया कि "चार्स" जैसे आदिम चर "स्टैक" मेमोरी में संग्रहीत हैं।
इसका मतलब यह है कि:
- NSString के कहने ढेर स्मृति में संग्रहीत किया जाता है;
- और इस ऑब्जेक्ट में iVar पॉइंटर (जब initWithString विधि को कॉल किया गया था) आदिम "वर्ण" की "वैल्यू" स्ट्रिंग में है, जो स्टैक मेमोरी में रहता है? यह वास्तविकता में कैसे काम करता है?
दूसरा सवाल सीधे संबंधित है और मेरे लिए एक व्यक्तिगत दुविधा का कारण बनता है (शायद इसलिए कि मैं एक बिंदु याद कर रहा हूँ): 2) दो दृष्टिकोण से कौन सा परामर्श और क्यों हैं ?:
NSString *myString = [[NSString alloc] initWithString: @"Value"];
NSString *myString = @"Value";
यदि मेरा पहला प्रश्न पुष्टि हो गया है, तो दोनों दृष्टिकोणों को "अंत में" बिंदुओं को स्टैक मेमोरी में संग्रहीत वर्णों को इंगित करना चाहिए। इसलिए मैं वास्तव में पहले विकल्प का उपयोग करने और बनाए रखने की गिनती से परेशान होने का उद्देश्य नहीं देखता हूं।