/ / उद्देश्य सी (iPhone) में सरणी - iPhone, उद्देश्य-सी, सरणियाँ, nsstring, nsarray

उद्देश्य सी (आईफोन) में ऐरे - आईफोन, उद्देश्य-सी, सरणी, nsstring, nsarray

मैं उद्देश्य सी में 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];

यहां दस्तावेज है: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html#//apple_ref/occ/instm/NSMutableArray/addObjectsFromArray: