मैं उद्देश्य सी में NSArray के बारे में पूछना चाहता हूं।
मैं एक गतिशील सरणी बनाना चाहता हूं क्योंकि मुझे पता नहीं हैसरणी के आकार के बारे में। और मैं सरणी में कुछ डेटा सम्मिलित करना चाहता हूं। हालाँकि, मैं नहीं जानता कि कैसे घोषित करें, init करें और एरे को एलीमेंट डालें।
निम्नलिखित C ++ संस्करण है। मैं एक खाली सरणी A बनाना चाहता हूं और सभी सरणी तत्व को B से A में रखता हूं।
// empty array
string arrA[] = new string();
// put the arrB into arrA
for(int i=0; i < arrB.length(); i++)
arrA[i] = arrB[i];
आपका बहुत बहुत धन्यवाद।
उत्तर:
उत्तर № 1 के लिए 4आपको नामित वर्ग का उपयोग करना चाहिए NSArray
या NSMutableArray
। ये समान हैं std::vector
हालाँकि, वे उद्देश्य-सी के काम करने के तरीके के कारण उनके उपयोग में कुछ भिन्न हैं।
// Immutable array (must be created with contents specified)
NSArray *strings = [NSArray arrayWithObjects:@"Hello", @", world!", nil];
// Mutable array (can be modified)
NSMutableArray *strings = [NSMutableArray array];
[strings addObject:@"Hello"];
[strings addObject:@", world!"];
उद्देश्य-सी के साथ अंतर NSArray
वस्तुओं यह है कि वे किसी भी प्रकार की वस्तु को तब तक ले जा सकते हैं जब तक कि वह उप-वर्ग है NSObject
.
NSArray *array = [NSArray arrayWithObjects:@"A string", [NSNumber numberWithInt:1337], [NSDictionary dictionary]];
मूल्यों तक पहुँचने के लिए आपको इसका उपयोग करना चाहिए objectAtIndex:
संदेश।
NSString *aString = [array objectAtIndex:10];
NSLog(aString);
जवाब के लिए 2 № 2
का उपयोग NSMutableArray
। अगर arrB
एक है NSArray
:
NSMutableArray *arrA = [[NSMutableArray alloc] init];
[arrA addObjectsFromArray: arrB];