2011-11-30 6 views
5

में पॉइंटर्स के बारे में मैंने निम्नलिखित में ठोकर खाई और यह काम नहीं कर रहा है कि यह क्यों काम करता है। कृपया आप बता सकते हैं कि मुझे range से पहले पॉइंटर का उपयोग करने की आवश्यकता क्यों नहीं है?उद्देश्य-सी

NSString *d = @"The quick brown fox"; 
NSRange range = [d rangeOfString:@"brown"]; 

उत्तर

9

NSString एक ऑब्जेक्ट प्रकार है। सभी ऑब्जेक्ट प्रकार पॉइंटर्स हैं और स्टैक पर नहीं बनाए जा सकते हैं। NSRange एक सी-स्ट्रक्चर है। स्टैक पर ढेर बनाया जा सकता है, और इस प्रकार सभी पॉइंटर्स जरूरी नहीं हैं।

यह जानने के लिए कोई अच्छी मार्गदर्शिका नहीं है कि कौन से वस्तुएं हैं, और कौन से structs हैं। जैसे ही आप आगे बढ़ते हैं, आपको बस प्रत्येक प्रकार की जांच करनी होगी।

+0

+1 ओपी को: याद रखें कि उद्देश्य-सी सी का एक सुपर-सेट है, ओओपी सुविधाओं को जोड़ रहा है। लेकिन यहां तक ​​कि यदि आप ओओपी तरीके से कोड कर सकते हैं, तो आपको अभी भी कुछ सी मूलभूत जानकारी (कम से कम) जाननी है। – Macmade

+0

ढेर बनाम ढेर आवंटन की एक ठोस समझ यहां बहुत आसान होगी। –

+1

यहां तक ​​कि एक ठोस भी नहीं ... बस कुछ मूल बातें वास्तव में मदद करेंगे, IMHO:) – Macmade

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^